社区
界面
帖子详情
动态库(dll)中,创建窗口消息响应问题.
吉哥
2008-06-23 11:41:49
请教,主程序中有窗口容器,如标签控件,可以支持加入多个子窗口.在主程序中创建了几个子窗口,加入其中都没有问题.通过调用动态库,获得其中创建的子窗口(传递父窗口指针或句柄都试过),并加入容器中,一切正常.除了动态库中创建的子窗口不响应各种输入消息(键盘输入/鼠标双击),以及各种虚函数调用(DrawItem等).这是为什么?常见消息只响应WM_SIZE.
...全文
134
8
打赏
收藏
动态库(dll)中,创建窗口消息响应问题.
请教,主程序中有窗口容器,如标签控件,可以支持加入多个子窗口.在主程序中创建了几个子窗口,加入其中都没有问题.通过调用动态库,获得其中创建的子窗口(传递父窗口指针或句柄都试过),并加入容器中,一切正常.除了动态库中创建的子窗口不响应各种输入消息(键盘输入/鼠标双击),以及各种虚函数调用(DrawItem等).这是为什么?常见消息只响应WM_SIZE.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liyinlei
2008-06-25
打赏
举报
回复
dll是输出整个类吗?比如CMyListBox?
用MFC扩展dll应该是没问题的,用的时候需要子类化一下,比如CMyListBox listBox; ID为IDC_LISTBOX
listBox.SubclassWindow( GetDlgItem(IDC_LISTBOX)->m_hWnd );
就会调用到CMyListBox 里面的消息处理函数
吉哥
2008-06-25
打赏
举报
回复
原来设计的思想就是特殊窗口在动态库中实现,主程序通过接口去查询各个动态库中是否输出窗口,然后添加到标签项中。目的就是为了独立性强,由动态库自己去处理各种窗口内容。大家还有什么更好的意见和建议。明天准备结贴。
pomelowu
2008-06-25
打赏
举报
回复
很难,不过不是一定不能解决。问题是即使解决了,从设计的角度看,耦合性也很高,不是很好的设计。
pomelowu
2008-06-24
打赏
举报
回复
嗯,是這樣的,窗口函數回調和窗口的創建應該在一個模塊里,這樣就不會有問題。
吉哥
2008-06-24
打赏
举报
回复
如果不再一个模块里呢?像上面所描述的那样,就没有解决办法了吗?
pomelowu
2008-06-23
打赏
举报
回复
你在消息處理部分是在dll中還是在exe模塊中?
吉哥
2008-06-23
打赏
举报
回复
在普通程序中调试通过的CMyListBox类(派生于CListBoX),简单移植到DLL中。又测试发现,如果是将对话框作为子窗口就可以——此时CMyListBox是对话框的一个控件。
吉哥
2008-06-23
打赏
举报
回复
都是用MFC类库实现的,如CListBox的派生类CMyListBox,代码都在DLL中。因为首先在对话框中调试通过后,把类的头文件和源文件简单移植到DLL中,发现不可行。刚又测试了一下,如果在DLL中创建对话框,LISTBOX紧紧是对话框的变量,就可以了。为什么?
在线。。。。
JAVA上百实例源码以及开源项目
在对象
创建
的过程
中
将被容器调用,onMessage函数方法接收
消息
参数,将其强制转型为合适的
消息
类型,同时打印出
消息
的内容。同时一个mail note将被发送给
消息
发送者,发送一个e-mail通知给由recipient参数确定的e-...
java源码包2
在对象
创建
的过程
中
将被容器调用,onMessage函数方法接收
消息
参数,将其强制转型为合适的
消息
类型,同时打印出
消息
的内容。同时一个mail note将被发送给
消息
发送者,发送一个e-mail通知给由recipient参数确定的e-...
java源码包---java 源码 大量 实例
在对象
创建
的过程
中
将被容器调用,onMessage函数方法接收
消息
参数,将其强制转型为合适的
消息
类型,同时打印出
消息
的内容。同时一个mail note将被发送给
消息
发送者,发送一个e-mail通知给由recipient参数确定的e-...
java源码包4
在对象
创建
的过程
中
将被容器调用,onMessage函数方法接收
消息
参数,将其强制转型为合适的
消息
类型,同时打印出
消息
的内容。同时一个mail note将被发送给
消息
发送者,发送一个e-mail通知给由recipient参数确定的e-...
动态链接库
dll
详解
使用
动态库
前要先将.
dll
文件加入到程序文件目录下第一种方法:在程序里添加#pragma comment(lib,"1124T
Dll
.lib")代码第二种方法:将lib文件添加到附加依赖项
中
。两种方法选一种即可在需要用到的
动态库
函数用关键字...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章