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

mie

 
 
 

日志

 
 

VC: Tab切换父、子窗口焦点问题  

2010-09-06 12:38:45|  分类: vc界面编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一个父窗口,两个子窗口(Dialog)。子窗口修改属性:

 ModifyStyle(0, DS_CONTROL, 0);
 ModifyStyleEx(0, WS_EX_CONTROLPARENT, 0);

但是,还是无法使用Tab键切换父、子窗口焦点,——可以从父窗口切换焦点到子窗口,但是子窗口获得焦点后,就没法切换到父窗口了。以前试过是可以的。

 

我认为,在子窗口获得了输入焦点时,父窗口无法得到消息通知。所以,输入的Tab键完全被子窗口接收了,自然也就无法切换回父窗口。于是,在子窗口重载PreTranslateMessage函数,最后的返回代码改为:
 return g_main_dlg->PreTranslateMessage(pMsg);

g_main_dlg是主窗口的指针。

这样,当子窗口获得焦点时,焦点事件由父窗口代为处理和分发。从而解决了焦点问题。

 


BOOL CDialogTool::PreTranslateMessage(MSG* pMsg)
{
 return g_main_dlg->PreTranslateMessage(pMsg);
}

 

也可以只过滤键盘事件,将键盘事件传递给父窗口。不能只传递TAB键的消息,要注意Escape、Return、F1等按键。

 

By:zhanyonhu

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

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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