让动态创建的ActiveX控件响应Windows消息

简介: 当我们通过 CWnd::CreateControl() 动态创建 ActiveX   控件时, Windows 消息并不会被发送给我 们的由   CWnd 派生得控件类。

当我们通过

CWnd::CreateControl()

动态创建

ActiveX

 

控件时,

Windows

消息并不会被发送给我

们的由

 

CWnd

派生得控件类。例如,即使我们为

WM_KILLFOCUS

 

消息创建了句柄,这个句柄

 

也是不会被调用的。(不信你试试

:))

引起这个问题的原因时,

CWnd::CreateControl()

并不会使我控件的

 

HWND

子类化。

知道了原因,要解决问题就不难了。我们只要在控件创建之后使它子类化就行了。通过一下步

骤可以实现:

1.

当然是添加控件啦,先生成控件的

C++

包容类。

2.

再要创建控件的类中声明成员变量,此成员变量是包容类的指针对象。

3.

在包容类的头文件中添加:

//{{AFX_MSG(CMyClass)

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

CMyClass

是实际的类名。

4.

在包容类的

CPP

文件的

#include

段下面添加:

BEGIN_MESSAGE_MAP(CMyClass,

CWnd)

//{{AFX_MSG_MAP(CMyClass)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

5.

 

删除工程目录下的

.clw

 

文件,在工程中打开

ClassWizard

,先选

yes

,在选

Add

All

6.

现在你就可以使用

ClassWizard

为控件包容类添加消息映射和处理函数了。

完成这些修改后,你必须创建控件并且使它子类化,下面是个例子:

void

CSDIApp2View::OnInitialUpdate()

{

CView::OnInitialUpdate();

m_pFlexGrid

=

new

CMSFlexGrid;

CRect

rect;

GetClientRect(&rect);

m_pFlexGrid->Create(NULL,

WS_CHILD

|

WS_VISIBLE,

rect,

this,

IDC_FLEXGRID);

HWND

hWnd

=

m_pFlexGrid->Detach();

m_pFlexGrid->SubclassWindow(hWnd);

}

目录
相关文章
|
7月前
|
存储 安全 UED
Cyber Triage 3.13 for Windows - 数字取证和事件响应
Cyber Triage 3.13 for Windows - 数字取证和事件响应
199 71
Cyber Triage 3.13 for Windows - 数字取证和事件响应
EMQ
|
缓存 数据可视化 物联网
在 Windows 上搭建 MQTT 消息服务器
本文将以NanoMQ为例,演示如何通过安装包和源代码编译两种安装方式,在Windows系统中快速搭建一个可以支持多协议连接的物联网MQTT消息服务器。
EMQ
823 0
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
308 0
|
API C# Windows
C#实现操作Windows窗口句柄:遍历、查找窗体和控件【窗口句柄最全总结之一】
C#对Windows窗口或窗口句柄的操作,都是通过 P/Invoke Win32 API 实现的,DllImport引入Windows API操作窗口(句柄),可以实现枚举已打开的窗口、向窗口...
5501 0
C#实现操作Windows窗口句柄:遍历、查找窗体和控件【窗口句柄最全总结之一】
|
C++ Windows
C++ Windows窗口程序:子窗口控件之按钮类button
C++ Windows窗口程序:子窗口控件之按钮类button
1253 0
|
SQL 前端开发 Windows
SQL Sever2012安装错误——Windows Installer错误消息:打开安装日志文件的错误的原因及解决方案
由于要对着错误信息来解决,所以此处是用手机拍摄的,如果看不清楚可以看下面的文字版;此处的错误是在安装程序支持规则中爆出的
779 0
SQL Sever2012安装错误——Windows Installer错误消息:打开安装日志文件的错误的原因及解决方案
|
JSON JavaScript 安全
基于Windows微信实现实时收发微信消息App
基于Windows微信实现实时收发微信消息App
1749 0
基于Windows微信实现实时收发微信消息App
|
存储 监控 算法
微信Windows端IM消息数据库的优化实践:查询慢、体积大、文件损坏等
本文分享的是,微信客户端团队基于对微信用户日常使用场景和数据分析,通过分离重要和非重要数据、采用可靠的分库策略等,对微信Windows端IM本地数据库的架构进行的优化和改造,并最终得到一个具备良好实践效果的技术改造方案。
566 0
微信Windows端IM消息数据库的优化实践:查询慢、体积大、文件损坏等
|
Windows
Windows程序设计——Windows单选按钮、复选框、分组框控件
Windows程序设计——Windows单选按钮、复选框、分组框控件
785 0
Windows程序设计——Windows单选按钮、复选框、分组框控件
|
Windows
Windows程序设计——(源代码)Windows单选按钮、复选框、分组框控件
Windows程序设计——(源代码)Windows单选按钮、复选框、分组框控件
274 0