从外部关闭OleCreatePropertyFrame

问题描述 投票:1回答:1

我正在使用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
    );

感谢您的任何帮助。

c++ winapi com directshow
1个回答
0
投票

OleCreatePropertyFrame是模态对话框的标准API,这意味着应该显示消息框,直到以交互方式关闭为止。也就是说,您不应该能够从代码中关闭它。

使对话框成为模态的方法之一是重新实现属性页宿主(IPropertyPage和朋友),并将其作为无模窗口或其他方式放入自定义的UI中。总体上说,这是完全可行的,并且大多数都希望掌握COM的基础知识。

从外部关闭标准模式UI的另一种[传统方法?来自外部消息循环的]消息,由API关闭对话框后添加,以尝试进一步转发quit命令。

© www.soinside.com 2019 - 2024. All rights reserved.