刚学,请大家帮帮忙

解决方案 »

  1.   

    试试这个:
    BOOL CLiveUpdateDlg::PreTranslateMessage(MSG* pMsg) 
    {
    if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_F11)
    CDialog::OnOK(); return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    BOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg) 
    {
    if( pMsg->message == WM_KEYDOWN )
    {   
    switch( pMsg->wParam )
    {
    case VK_F11:
    OnOK();
    }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    那为什么不能用OnChar或者OnKeyDown,我尝试用那两个东西,发现按键时,根本进不了那两个函数(我在那两个函数里做了断点),请问这是怎么回事?
      

  4.   

    同意,先注册热键为F11,然后在OnHotKey响应函数中直接CDialog::OnOK();即可。
    这种的好处是,不管你的程序当前对话框是否被激活,都可以响应的。
      

  5.   

    *********************
    那为什么不能用OnChar或者OnKeyDown,我尝试用那两个东西,发现按键时,根本进不了那两个函数(我在那两个函数里做了断点),请问这是怎么回事?
    *********************模态对话框不响应OnChar和OnKeyDown 在CDialog::PreTranslateMessage(pMsg);中过滤掉了,所以只有重载PreTranslateMessage,在其中响应,如楼上几位所说