ActiveX控件中捕获不到TWAIN消息,而做成应用,在窗体中可捕获消息

萝卜波 2009-08-25 09:19:36
现在我利用该代码制作一ActiveX控件,用的是MFC ActiveX向导。在控件的PreTranslateMessage中COleControl::PreTranslateMessage(pMsg)前加上对TWAIN的消息处理
函数,其他代码基本与下载的那个相同,结果是弹出TWAIN扫描界面后,捕获不到TWAIN的
消息。这是怎么回事?

查看论坛历史记录:yonsm有过回复
TWAIN 需要在用户UI线程中处理消息,而作为OCX控件的PreTranslateMessage不是UI消息循环的线程,导致TWAIN无法处理事件。

我已经更改了Twain类,不再依赖于其它窗口,GetImage将是一个阻塞的函数,调用后内部自动创建一个消息循环,所以能够正常使用。
但是不知道怎么改的, 盼望高手求救
...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
萝卜波 2009-08-26
  • 打赏
  • 举报
回复
容器PreTranslateMessage获取不到信息的

可能只能用atl 的窗口相关知识实现了
zoulie 2009-08-26
  • 打赏
  • 举报
回复
控件自己处理消息,而不要容器处理,可以处理这两个方法
virtual BOOL PreTranslateInput(MSG* pMsg);
virtual BOOL PreTranslateMessage(MSG* pMsg);
萝卜波 2009-08-26
  • 打赏
  • 举报
回复
都没有人看。。。阿
郁闷

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧