从外部关闭 OleCreatePropertyFrame
Close OleCreatePropertyFrame externally
我正在使用 OleCreatePropertyFrame 显示网络摄像头的 属性 页面。但是,我无法在关闭相机时使对话框成为模态或从外部关闭框架。
OleCreatePropertyFrame(
NULL, // Parent window
0, 0, // Reserved
lpcostr, // Caption for the dialog box
1, // Number of objects (just the filter)
&pFilterUnk, // Array of object pointers.
caGUID.cElems, // Number of property pages
caGUID.pElems, // Array of property page CLSIDs
0, // Locale identifier
0, NULL // Reserved
);
感谢任何帮助。
OleCreatePropertyFrame
是模态对话框的标准 API,这意味着消息框会一直显示到交互式关闭。也就是说,您不应该能够从代码中关闭它。
This function always creates a modal dialog box and does not return until the dialog box is closed.
使对话框成为模态的方法之一是重新实现 属性 页面宿主(IPropertyPage
和朋友)并将其作为无模态 UI 放入您的自定义 UI =27=] 或其他。总体来说还算可以,主要是希望有COM基础知识。
从外部关闭标准模式 UI 的另一个 [传统?] 技巧是 PostQuitMessage
进入 OleCreatePropertyFrame
API 的内部消息循环,以便关闭对话框响应非交互式信号的框,然后从外部消息循环中删除挂起的 WM_QUIT
消息,关闭对话框后由 API 添加,以进一步转发退出命令。
我正在使用 OleCreatePropertyFrame 显示网络摄像头的 属性 页面。但是,我无法在关闭相机时使对话框成为模态或从外部关闭框架。
OleCreatePropertyFrame(
NULL, // Parent window
0, 0, // Reserved
lpcostr, // Caption for the dialog box
1, // Number of objects (just the filter)
&pFilterUnk, // Array of object pointers.
caGUID.cElems, // Number of property pages
caGUID.pElems, // Array of property page CLSIDs
0, // Locale identifier
0, NULL // Reserved
);
感谢任何帮助。
OleCreatePropertyFrame
是模态对话框的标准 API,这意味着消息框会一直显示到交互式关闭。也就是说,您不应该能够从代码中关闭它。
This function always creates a modal dialog box and does not return until the dialog box is closed.
使对话框成为模态的方法之一是重新实现 属性 页面宿主(IPropertyPage
和朋友)并将其作为无模态 UI 放入您的自定义 UI =27=] 或其他。总体来说还算可以,主要是希望有COM基础知识。
从外部关闭标准模式 UI 的另一个 [传统?] 技巧是 PostQuitMessage
进入 OleCreatePropertyFrame
API 的内部消息循环,以便关闭对话框响应非交互式信号的框,然后从外部消息循环中删除挂起的 WM_QUIT
消息,关闭对话框后由 API 添加,以进一步转发退出命令。