注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

VC+ATL:非模式窗口得不到按键消息的问题  

2010-08-10 18:36:53|  分类: vc界面编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

VC+ATL:非模式窗口得不到按键消息的问题

难度级别:★★★★★

开发环境:VC 2008 +ATL

 

        窗口继承的是CAxDialogImpl类,我使用如下的代码创建的窗口:
   m_popup.Create(hparent);

  m_popup.ShowWindow(SW_SHOW);
  m_popup.CenterWindow();
  m_popup.SetFocus();

        但是,我希望在这个窗口里面相应ESC键。于是,我重载了OnKeyDown,但是程序没能执行到这里。于是,我又尝试了OnChar,还是不行!

        看了一下CAxDialogImpl类,发现有个GetDialogProc,于是重载之。借助子类化的原理,我使用它实现了一个类似子类化的东西(不伦不类),但是,效果不好!

        于是,我就对这个窗口进行子类化处理。但是处理结果是,这个窗口根本没有取得到按键消息!

       

解决!

原来是父窗口的问题。 

        方法(1) 不使用按键响应了。

        方法(2)  m_popup.Create(hparent);改为   m_popup.Create(NULL); ,即可。

但是,这会导致任务栏出现可恶的图标,——使用工具条风格来兼容处理。

 

采用方法(2)

 

By:zhanyonhu

  评论这张
 
阅读(816)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016