計(jì)算機(jī)二級(jí)考試C++輔導(dǎo):CDialog中不響應(yīng)OnKeyDown和一些相關(guān)問(wèn)題
時(shí)間:2008-10-05 02:43:00 來(lái)源:無(wú)憂考網(wǎng) [字體:小 中 大]
經(jīng)常有人提出CDialog中響應(yīng)鍵盤(pán)消息的OnKeyDown函數(shù)沒(méi)反應(yīng)。結(jié)論是CDialog不響應(yīng)OnKeyDown,相應(yīng)的解決方法是:
BOOL CTestDlg::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_LEFT:
break;
case VK_RIGHT:
break;
case VK_UP:
break;
case VK_DOWN:
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
經(jīng)過(guò)仔細(xì)研究發(fā)現(xiàn)CDialog是相應(yīng)對(duì)應(yīng)消息的OnKeyDown函數(shù)的,只是這個(gè)消息在到達(dá)窗體之前,已經(jīng)被它的子控件捕獲了,如果將窗體中的所有控件都刪除,窗體就會(huì)捕獲到這個(gè)消息,但要注意的是,MFC為了實(shí)現(xiàn)在窗體上切換子控件的焦點(diǎn),已經(jīng)將 VK_TAB,VK_LEFT,VK_RIGHT,VK_UP,VK_DOWN進(jìn)行了處理,同時(shí)VK_RETURN也被系統(tǒng)捕獲用來(lái)處理相應(yīng)的確定事件,所以即使窗體中沒(méi)控件,這幾個(gè)鍵還是無(wú)法捕獲,暫時(shí)只能用PreTranslateMessage解決。
一個(gè)窗體僅在它沒(méi)有可視和有效的控件時(shí)。響應(yīng)OnKeyDown。
BOOL CTestDlg::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_LEFT:
break;
case VK_RIGHT:
break;
case VK_UP:
break;
case VK_DOWN:
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
經(jīng)過(guò)仔細(xì)研究發(fā)現(xiàn)CDialog是相應(yīng)對(duì)應(yīng)消息的OnKeyDown函數(shù)的,只是這個(gè)消息在到達(dá)窗體之前,已經(jīng)被它的子控件捕獲了,如果將窗體中的所有控件都刪除,窗體就會(huì)捕獲到這個(gè)消息,但要注意的是,MFC為了實(shí)現(xiàn)在窗體上切換子控件的焦點(diǎn),已經(jīng)將 VK_TAB,VK_LEFT,VK_RIGHT,VK_UP,VK_DOWN進(jìn)行了處理,同時(shí)VK_RETURN也被系統(tǒng)捕獲用來(lái)處理相應(yīng)的確定事件,所以即使窗體中沒(méi)控件,這幾個(gè)鍵還是無(wú)法捕獲,暫時(shí)只能用PreTranslateMessage解決。
一個(gè)窗體僅在它沒(méi)有可視和有效的控件時(shí)。響應(yīng)OnKeyDown。
- 2009年9月全國(guó)計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)工程師考試真題及答案
- 2009年3月全國(guó)計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)工程師考試真題及答案
- 2008年9月全國(guó)計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)工程師考試真題及答案
- 2008年4月全國(guó)計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)工程師考試真題及答案
- 2011年3月全國(guó)計(jì)算機(jī)二級(jí)Java考試真題及答案
- 2010年9月全國(guó)計(jì)算機(jī)二級(jí)Java考試真題及答案
- 查看計(jì)算機(jī)等級(jí)考試全部真題>>
- 2025上半年安徽計(jì)算機(jī)二級(jí)報(bào)名時(shí)間及報(bào)名入口(3月3日-9日)
- 2025上半年上海計(jì)算機(jī)二級(jí)報(bào)名時(shí)間及報(bào)名入口(3月4日-7日)
- 2025年3月上海計(jì)算機(jī)二級(jí)報(bào)名時(shí)間及報(bào)名入口(3月4日-7日)
- 2025年3月浙江計(jì)算機(jī)二級(jí)報(bào)名時(shí)間及報(bào)名入口(3月3日-10日)
- 2025年3月江蘇計(jì)算機(jī)二級(jí)報(bào)名時(shí)間及報(bào)名入口(3月3日-10日)
- 2025年3月安徽計(jì)算機(jī)二級(jí)報(bào)名時(shí)間及報(bào)名入口(3月3日-9日)
- 查看計(jì)算機(jī)等級(jí)考試全部文檔 >>
- 2024年9月上海計(jì)算機(jī)一級(jí)成績(jī)查詢時(shí)間及查分入口
- 2024年9月全國(guó)計(jì)算機(jī)一級(jí)成績(jī)查詢時(shí)間及查分入口
- 2024年9月全國(guó)計(jì)算機(jī)一級(jí)考試成績(jī)查詢?nèi)肟冢ㄒ验_(kāi)
- 2024年9月浙江省全國(guó)計(jì)算機(jī)等級(jí)考試(NCRE)
- 2024年9月浙江計(jì)算機(jī)二級(jí)考試準(zhǔn)考證打印入口(9
- 2024年9月江蘇計(jì)算機(jī)一級(jí)成績(jī)查詢時(shí)間及查分入口
- 2024年9月江蘇計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間及查分
- 2024年9月浙江計(jì)算機(jī)二級(jí)成績(jī)查詢時(shí)間及查分入口