对话框问题,高手指教,100分相送! 我在对话框里创建了一个CInput(从CEdit派生),当我按下F2时,我想让对话框接受的消息,而不是CInput,我该怎么做啊,我已经在对话框中添加了WM_CHAR消息,可是没有用的,当我按下F2时,对话框根本收不到,CInput却收到了,为什么啊?我该怎么做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 让CInput失去焦点。对话框得到焦点。SetFocus() use this while(GetMessage(&&msg,NULL,NULL,NULL)) { file://从消息队列中取得消息 TranslateMessage(&&msg); file://检索并生成字符消息WM_CHAR DispatchMessage(&&msg); file://将消息发送给相应的窗口函数 } BOOL CDlg16Dlg::PreTranslateMessage(MSG* pMsg) { if(WM_KEYDOWN == pMsg->message) { if(VK_F2 == pMsg->lParam) { pMsg->hwnd = this->GetSafeHwnd() ; } } return CDialog::PreTranslateMessage(pMsg);} 响应对话框的PreTranslateMessage消息BOOL CRecordOtherDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_KEYDOWN) { if((int)pMsg->wParam == VK_F2) { } } return CDialog::PreTranslateMessage(pMsg);} to bohut(伯虎):你的方法我知道啊,我就是想当CInput为焦点时,如何让父窗口得到F2消息?to BLsoft(網龍ζ龍活):你的方法我看不懂,能不能详细点? BOOL CDlg16Dlg::PreTranslateMessage(MSG* pMsg) { if(WM_KEYDOWN == pMsg->message) { if(VK_F2 == pMsg->wParam) { pMsg->hwnd = this->GetSafeHwnd() ; } } return CDialog::PreTranslateMessage(pMsg);}sorry! if(VK_F2 == pMsg->lParam)错了 BOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_KEYDOWN ) { switch( pMsg->wParam ) { case VK_F2: AfxMessageBox("123"); return TRUE; } } return CDialog::PreTranslateMessage(pMsg);} vs2012编译的DLL,在winXP上无法使用 PostMessage问题 关于无窗口richedit的例子 气泡提示信息,如何随意改变气泡的位置 菜单项复选标记 我想在菜單中也加入快捷鍵,請問我在程序中如何才能實現讓快捷鍵也能實現與菜單同樣的功能呢 关于profile和dll vc如何快速连接和修改sqlser2000数据库?给个例子吧 还是字符串格式化的问题,谁能帮帮我? ODBC数据库 如何初始化对话框 设置位图出错
SetFocus()
{ file://从消息队列中取得消息
TranslateMessage(&&msg);
file://检索并生成字符消息WM_CHAR
DispatchMessage(&&msg);
file://将消息发送给相应的窗口函数
}
{
if(WM_KEYDOWN == pMsg->message)
{
if(VK_F2 == pMsg->lParam)
{
pMsg->hwnd = this->GetSafeHwnd() ;
}
} return CDialog::PreTranslateMessage(pMsg);
}
{
if(pMsg->message==WM_KEYDOWN)
{
if((int)pMsg->wParam == VK_F2)
{ }
}
return CDialog::PreTranslateMessage(pMsg);
}
你的方法我知道啊,我就是想当CInput为焦点时,如何让父窗口得到F2消息?
to BLsoft(網龍ζ龍活):
你的方法我看不懂,能不能详细点?
{
if(WM_KEYDOWN == pMsg->message)
{
if(VK_F2 == pMsg->wParam)
{
pMsg->hwnd = this->GetSafeHwnd() ;
}
} return CDialog::PreTranslateMessage(pMsg);
}sorry! if(VK_F2 == pMsg->lParam)错了
{
if( pMsg->message == WM_KEYDOWN )
{
switch( pMsg->wParam )
{
case VK_F2:
AfxMessageBox("123");
return TRUE;
}
} return CDialog::PreTranslateMessage(pMsg);
}