如何在MFC应用程序中捕获OLE控件事件?由创建的 ActiveX 控件触发
我在 MFC 应用程序中动态创建一些 ActiveX 控件。我想处理他们的事件,例如单击,dblclick。但我不知道我应该捕获什么样的消息,在哪里放置代码来捕获它们。 如果在设计 GUI 时将这些控件放在对话框窗口上,我可以添加事件处理程序。 MFC自动添加的代码如下:
BEGIN_EVENTSINK_MAP(CButtonMsgDlg, CDialog)
ON_EVENT(CButtonMsgDlg, IDC_CWBOOLEAN1, DISPID_DBLCLICK, CButtonMsgDlg::DblClickCwboolean1, VTS_NONE)
END_EVENTSINK_MAP()
void CButtonMsgDlg::DblClickCwboolean1()
{
// TODO: Add your message handler code here
}
I dynamically create some ActiveX controls in my MFC app. I want to handle their event such as click, dblclick. But I don't know what kind of message should I catch where to put the code to catch them.
I can add the event handler if I put the these control on the dialog window as I design the GUI. The code automatically added by MFC is below:
BEGIN_EVENTSINK_MAP(CButtonMsgDlg, CDialog)
ON_EVENT(CButtonMsgDlg, IDC_CWBOOLEAN1, DISPID_DBLCLICK, CButtonMsgDlg::DblClickCwboolean1, VTS_NONE)
END_EVENTSINK_MAP()
void CButtonMsgDlg::DblClickCwboolean1()
{
// TODO: Add your message handler code here
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您在编译时已经知道事件类型,但不知道控件 ID,请查看如何创建基于 MFC 的 COM 客户端中的接收器接口
If you already know the event type at compile time, but don't know the control ids, check How to create a sink interface in a MFC-based COM client