请问如何让自己的应用程序响应Ctrl+TAB? rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void CxxWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { CWnd::OnKeyDown(nChar, nRepCnt, nFlags); switch(nChar) { case VK_TAB : if(GetKeyState(VK_CONTROL) < 0) { //YOUR CODE } }} BOOL bControlKeyDown = FALSE; bControlKeyDown = GetAsyncKeyState(VK_CONTROL) >> ((sizeof(SHORT) * 8) - 1); if((pMsg->wParam == 0x41//换成TAB) && bControlKeyDown) { this->SetSel(0, -1); } (二)组合键的用法:(本例响应Ctrl+X键)BOOL CMydilog::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if (pMsg->message == WM_KEYDOWN) { switch (pMsg->wParam) { case VK_ESCAPE: SetFocus (); return TRUE; case 'X': if(::GetKeyState(VK_CONTROL) < 0)//如果是Shift+X这里就 //改成VK_SHIFT MessageBox("hello"); return TRUE; } } return CDialog::PreTranslateMessage(pMsg);} BOOL CMydilog::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if (pMsg->message == WM_KEYDOWN) { switch (pMsg->wParam) { case VK_TAB: if(::GetKeyState(VK_CONTROL) < 0) MessageBox("hello"); return TRUE; } } return CDialog::PreTranslateMessage(pMsg);} windyloft(神在看着你)和osborn(SEANX) ???好像你们说的不对吧???Ctrl+Tab不同于普通的序列,在没有经过修改它是系统默认的切换输入法的快捷键。对于这种级别的组合键,可以通过设置Windows全局键盘钩子来响应。函数是SetWindowsHookEx,必须要在一个dll中静态实现。 求解决 我想用VC写一个抓取网页内容的程序 关于线程处理函数 NTFS格式下的文件监视?? 一个工作者线程在PutFile()时阻塞了,不能继续下去,有什么方法可以结束这个线程呀 如何将长整型数组转换成字符串.或者转换成CHAR数组也可以??? 关于单文档中使用CPropertySheet 控件 100分相送 请帮忙看看一看这个函数 CSocket在工作者线程中使用出现非法操作 请教:如何让鼠标在Button上停留时,显示出类似于金山词霸那样的动态文本框? 请教GDI+实现图形的缩放,显示程序1(100分)!
{
CWnd::OnKeyDown(nChar, nRepCnt, nFlags); switch(nChar)
{
case VK_TAB :
if(GetKeyState(VK_CONTROL) < 0)
{
//YOUR CODE
}
}
}
bControlKeyDown = GetAsyncKeyState(VK_CONTROL) >>
((sizeof(SHORT) * 8) - 1); if((pMsg->wParam == 0x41//换成TAB) && bControlKeyDown)
{
this->SetSel(0, -1);
}
BOOL CMydilog::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
case VK_ESCAPE:
SetFocus ();
return TRUE;
case 'X':
if(::GetKeyState(VK_CONTROL) < 0)//如果是Shift+X这里就
//改成VK_SHIFT
MessageBox("hello");
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
BOOL CMydilog::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
case VK_TAB:
if(::GetKeyState(VK_CONTROL) < 0)
MessageBox("hello");
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}