信息: 使用加速键和一个 MFC 无模式对话框

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 117500
本文已归档。它按“原样”提供,并且不再更新。
概要
若要使用一个无模式对话框的快捷键,重写 PreTranslateMessage () 函数 CDialog 派生类中。
更多信息
若要使用无模式对话框的加速键,请执行以下步骤:

  1. 创建无模式对话框。有关更多的信息,请参阅下面 Microsoft 知识库中相应的文章:
    103788使用 MFC 库创建无模式对话框中
  2. 上述代码文件中插入此示例代码:
       // .h file with your derived CDialog class.   class CModeless : public CDialog   {      .    public:      virtual BOOL PreTranslateMessage(MSG*);      .   };   //.cpp file.   BOOL CModeless::PreTranslateMessage(MSG* pMsg)   {      HACCEL hAccel =      ((CMainFrame*)AfxGetApp()->m_pMainWnd)->GetAccelTable();      if(!(hAccel &&           ::TranslateAccelerator(AfxGetApp()->m_pMainWnd->m_hWnd, hAccel,                                  pMsg)))           return CDialog::PreTranslateMessage(pMsg);      else         return TRUE;   }   // Mainfrm.h file, where CMainFrame is the main window class.   HACCEL CMainFrame::GetAccelTable() { return m_hAccelTable; }						
  3. 使用应用程序 Studio 或从项目工作区,在 Visual c + + 32-位版本 4.0 版中的资源视图,请创建将加速键。在快捷键应 IDR_MAINFRAME 快捷键对应表中。它们还应具有相同的控件或菜单项与它们是相关联的 ID。
kbinf 1.00 1.50 1.51 1.52 2.00 2.10 2.50 2.51 2.52 3.00 3.10 4.00

警告:本文已自动翻译

属性

文章 ID:117500 - 上次审阅时间:09/13/2013 18:50:58 - 修订版本: 3.1

Microsoft Foundation Class Library 4.2

  • kbnosurvey kbarchive kbmt kbacceleratorkey kbarchitecture kbdlg kbinfo kbkeyaccel kbuidesign KB117500 KbMtzh
反馈