积极答复者
在ActiveX项目中的重载WindowPro函数里面居然截取不到自定义的消息

问题
-
开发平台:Visual Studio 6.0/Visual Studio 2008
项目类型:MFC ActiveX
部分说明:已添加代码将ActiveX标记为安全脚本
参考文章:
COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)
http://www.cnblogs.com/phinecos/archive/2008/12/29/1364791.html
问题描述:在重载的WindowProc里面拦截不到自定义的消息
在函数里面直接操作可以成功
代码如下:#define WM_ONMSG WM_APP + 101
LRESULT MyActiveXCtrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_ONMSG:
{
AfxMessageBox("拦截到了消息");//此处没有执行
return 0;
}
}
return COleControl::WindowProc(message, wParam, lParam);
}猜想:
我在公司的电脑中使用同样的方法却能成功拦截,由于我调整了IE的安全设置,会不会对此造成影响?
答案
-
songsu 说:
开发平台:Visual Studio 6.0/Visual Studio 2008
项目类型:MFC ActiveX
部分说明:已添加代码将ActiveX标记为安全脚本
参考文章:
COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)
http://www.cnblogs.com/phinecos/archive/2008/12/29/1364791.html
问题描述:在重载的WindowProc里面拦截不到自定义的消息
在函数里面直接操作可以成功
代码如下:#define WM_ONMSG WM_APP + 101
LRESULT MyActiveXCtrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_ONMSG:
{
AfxMessageBox("拦截到了消息");//此处没有执行
return 0;
}
}
return COleControl::WindowProc(message, wParam, lParam);
}猜想:
我在公司的电脑中使用同样的方法却能成功拦截,由于我调整了IE的安全设置,会不会对此造成影响?
楼主,您好,
您是不是把您的程序放置在别的机器上呢? 根据我的经验,MFC对系统平台的依赖性很强,如果您要是移植您的程序到不同的系统平台下,就必须把这些类库和头文件统统打包。- 已标记为答案 KeFang Chen 2009年3月20日 8:18
全部回复
-
songsu 说:
开发平台:Visual Studio 6.0/Visual Studio 2008
项目类型:MFC ActiveX
部分说明:已添加代码将ActiveX标记为安全脚本
参考文章:
COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)
http://www.cnblogs.com/phinecos/archive/2008/12/29/1364791.html
问题描述:在重载的WindowProc里面拦截不到自定义的消息
在函数里面直接操作可以成功
代码如下:#define WM_ONMSG WM_APP + 101
LRESULT MyActiveXCtrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_ONMSG:
{
AfxMessageBox("拦截到了消息");//此处没有执行
return 0;
}
}
return COleControl::WindowProc(message, wParam, lParam);
}猜想:
我在公司的电脑中使用同样的方法却能成功拦截,由于我调整了IE的安全设置,会不会对此造成影响?
楼主,您好,
您是不是把您的程序放置在别的机器上呢? 根据我的经验,MFC对系统平台的依赖性很强,如果您要是移植您的程序到不同的系统平台下,就必须把这些类库和头文件统统打包。- 已标记为答案 KeFang Chen 2009年3月20日 8:18