要实现一个用键盘光标移动窗口中显示图像的基本功能,
请问如何实现,mfc是否提供了响应的消息响应函数。

解决方案 »

  1.   

    你的意思是处理键盘的方向键吧,处理WM_KEYDOWN消息就行了
      

  2.   

    就是键盘的方向键。WM_KEYDOWN是对所有键的响应,查了msdn还是不知道怎么用
    我在mfc里添加了WM_KEYDOWN的消息响应函数OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
    在里面设了断点,但是按键的时候根本就不进入。难道还要我自己去调OnKeyDown函数?
      

  3.   

    在里面设了断点,但是按键的时候根本就不进入。难道还要我自己去调OnKeyDown函数?
    ================
    要不就处理PreTranslateMessage:写成这样:
    BOOL CMy2Dlg::PreTranslateMessage(MSG* pMsg)
    {  
    // TODO: 在此添加专用代码和/或调用基类
    if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RIGHT)
    {
    AfxMessageBox(_T("dlfjkl"));
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  4.   

    你是不是对话框上有控件啊,如LS所述,重载PreTranslateMessage吧,并且还需要做一定的判断,鼠标拖动可以相应WM_LBUTTOPNDOWN和WM_LBUTTONUP
      

  5.   

    对话框默认是不处理WM_KEYDOWN消息的,你可以在重载PreTranslateMessage虚函数中去处理WM_KEYDOWN消息。
      

  6.   

    如何重载PreTranslateMessage能说详细点吗
    在dlg的头文件和cpp中分别该怎么写?
      

  7.   

    代码我都写在上面了,PreTranslateMessage是一个虚函数,VS工具的使用问题语言不太好答,另外,VC6与VS2005对虚函数的重载操作方式好像也不一样。