控制柜手动自动讲解:c++实现组合键,让子窗口获得焦点
来源:百度文库 编辑:偶看新闻 时间:2024/07/11 04:22:06
版权属作者所有,不可作为商业用途。转载注明出处。谢谢合作。 界面如上图所示,在Tab control控件里嵌入三个dialog对象。分别在三个dailog上放置按钮。但用Tab键改变焦点时,进入不了Tab control控件里的按钮去。要使按钮有焦点只能先用鼠标点击Tab control控件里的按钮,让焦点进入到Tab control控件里。这样在按Atl+A时可实现单击按钮Clear All按钮的功能,即所谓的快捷键。介于这种实现方式有些失去快捷键的意义。因此找寻了以下的方法。采用组合键的方式。比如采用Ctrl+A的组合键实现以上Atl+A的功能。首先在主画面类中重载PreTranslateMessage函数并且加入以下代码 if(pMsg->message==WM_KEYDOWN && pMsg->wParam=='A' && (GetKeyState(VK_CONTROL) & 0x8000)) { AfxMessageBox(_T("截到了Ctrl+A键")); ::SendMessage(m_DiaSiemens.GetSafeHwnd(), WM_COMMAND, IDC_BUTTON_SClearAll,0);//向按钮所在窗口发送单击消息 return TRUE; }这样就实现了组合键。
经过测试以上代码只能是在以主窗口为焦点时,可行。当焦点在Tab control控件里时,此代码不运行。
当要让子窗口获得焦点也可在主窗口PreTranslateMessage函数里实现。本例中当获得Ctrl键按下时,设置Tab control控件里当前页窗口为焦点。代码如下: if(pMsg->message==WM_KEYDOWN && (GetKeyState(VK_CONTROL) & 0x8000)) { switch(m_TabContainer.GetCurSel()) { case 0: m_DiaSiemens.SetFocus(); break; case 1: m_DiaMitsubishi.SetFocus(); break; case 2: m_DiaPanasonic.SetFocus(); break; default : break; } }
经过测试以上代码只能是在以主窗口为焦点时,可行。当焦点在Tab control控件里时,此代码不运行。
当要让子窗口获得焦点也可在主窗口PreTranslateMessage函数里实现。本例中当获得Ctrl键按下时,设置Tab control控件里当前页窗口为焦点。代码如下: if(pMsg->message==WM_KEYDOWN && (GetKeyState(VK_CONTROL) & 0x8000)) { switch(m_TabContainer.GetCurSel()) { case 0: m_DiaSiemens.SetFocus(); break; case 1: m_DiaMitsubishi.SetFocus(); break; case 2: m_DiaPanasonic.SetFocus(); break; default : break; } }
用C#写一个程序,做一个窗口,当鼠标移入窗口时获得焦点,当移出时失去焦点
在VB中怎么才能让登录窗口失去焦点,而让密码窗口获得焦点,至到密码输入正确
[VB]怎么让一个textbox获得焦点
那个api函数可以使窗口获得焦点?
VB窗口中的text控件如何获得焦点
vb中怎样让某一个窗体获得焦点,关闭它,其它窗体才能获得焦点?
在flash中,怎样写代码让文本框获得焦点?
在flash中怎样让文本框获得焦点
asp.net(c#)中,如何让一个控件得到焦点?
怎样使c#.net中的树型控件中的某结点获得焦点并展开
vb,如何让一个command在加载窗体后自动获得焦点?
vb中怎么让滚动条拖动的时候才能获得焦点?
请问Jbuilder中怎样实现窗口嵌套?(即父窗口中打开子窗口)
如何在PB数据窗口中实现多种不同格式的数据窗口的组合
有关文本框获得焦点的问题。
javascript 怎么样使控件 获得焦点
asp中获得焦点是会么意思??
VFP中文本框如何获得焦点?
TextBox 怎样能自动获得焦点??
VB6如何使窗体获得焦点?
利用JS,怎么实现父窗口关闭了,从父窗口打开的子窗口也跟着关闭呢?
用AppActivate后发送键的途中接收键的窗口为什么会失去焦点
请教:如何实现鼠标向窗口内拖入一个文件,程序获得文件路径的方法
用键盘控制窗口放大用什么组合键