Programming Technology

VC下给CDialog添加加速键(Add accelerators)

为CDialog添加加速键:

  1. //在头文件声明成员变量
  2. HACCEL m_hAccelTable;
  3.  
  4. //在构造函数中调用函数,加入加速键
  5. CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
  6.         : CDialog(CMyDlg::IDD, pParent)
  7. {
  8.         //{{AFX_DATA_INIT(CMyDlg)
  9.         //}}AFX_DATA_INIT
  10.         // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  11.         m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  12.  
  13.         //加速键
  14.         m_hAccelTable = ::LoadAccelerators(AfxGetInstanceHandle(),
  15.                 MAKEINTRESOURCE(IDR_ACCELERATOR)); //加速键的资源ID
  16. }


  1. //添加PreTranslateMessage消息相应
  2. BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
  3. {
  4.         // TODO: Add your specialized code here and/or call the base class
  5.  
  6.         //加速键事件
  7.         if(m_hAccelTable != NULL)  
  8.         {  
  9.                 if(TranslateAccelerator(m_hWnd, m_hAccelTable, pMsg))
  10.                 {
  11.                         return TRUE;  
  12.                 }
  13.         }
  14.        
  15.         return CDialog::PreTranslateMessage(pMsg);
  16. }

不错

Comment by VC 筱强 (2009/05/20 11:07)

发表评论 ( 如果您刚刚提交过评论,但是还没有被显示出来,请点击这里刷新一下: 刷新评论 )

标题

内容*

昵称*

电子邮件

个人网页


 authimage