解决方案 »

  1.   

    WM_KEYDOWN只能由有焦点的窗口来响应
      

  2.   

    产生窗口时我调用了如下代码设置窗口活动和getfocusthis->SetFocus();
    this->SetForegroundWindow();
    this->SetActiveWindow ();我看pretranslatemessage方法不行了之后改用translate之后的keydown消息了,void CAllProgramWinStart::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) // added by 
    {
    if (nChar == VK_DELETE)
    {
    //AfxMessageBox(L"key down received");
    IDUILCItem* pItem = m_pListProgram->GetFirstSelectedItem();//取得第一个选中的item
    while(pItem)
            .......这时候就可以响应了啊。虽然能够实现功能了,但是pretranslate函数不能响应依然让我费解。另外一个大对话框可以响应pretranslatemessage。上网查资料说,动态库中的pretranslatemessage不能响应,而我这个模块确实做成了一个dll供其他模块调用。不过按此说,应该所有对话框中的pretranslatemessage都不能响应啊,费解