我在dialog程序里,在资源里加入快捷键后,Ctrl+D,
并在类向导里为它对应的资源加入消息,但程序就是运行
时对快捷键不响应,不知是怎么回事,我的操作过程也是
按书上例子做的,感觉也没有错,不知是怎么回事

解决方案 »

  1.   

    发信人: vole (田鼠), 信区: VisualC 
    标  题: Re: 对话框中怎么响应快捷键? 
    发信站: BBS 水木清华站 (Fri Feb 23 12:30:37 2001) 在对话框里用快捷键是需要自己来写代码的. 
    大体的方法可以如下: 
    在对话框中增加一成员变量: 
    HACCEL  m_hAccel 
    在OnInitDialog()函数中将快捷键加载: 
    m_hAccel = LoadAccelerators(AfxGetInstanceHandle( ), 
                    MAKEINTRESOURCE(IDR_ACCELERATOR)); 
    需要判断是否加载成功,即m_hAccel是否为NULL. 
    在PreTranslateMessage(MSG* pMsg)中处理快捷键的消息: 
    if (m_hAccel != NULL) 
        TranslateAccelerator(this->m_hWnd, m_hAccel, pMsg); 
    当然了,在对话框关闭时不能记了删除加载的快捷键: 
    if (m_hAccel != NULL) 
        DestroyAcceleratorTable(m_hAccel);