VC中有关OnKeyDown()的使用??? 点击:2536 | 回复:1



zhong2008

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:25帖 | 27回
  • 年度积分:0
  • 历史总积分:204
  • 注册:2005年11月05日
发表于:2006-07-09 17:01:00
楼主
    在vc的对话框中想使用WM_KEYDOWN消息函数来移动屏幕上所画的直线,代码如下:
void CMouseDrDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
    // TODO: Add your message handler code here and/or call default
    switch(nChar)
    {
    case 'VK_LEFT':nPoint[1].x--;
        SendMessage(WM_PAINT);
        break;
    case VK_RIGHT:nPoint[1].x++;
        SendMessage(WM_PAINT);
        break;
     
    }
    CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
按左箭头和右箭头键怎么均没反应,后又增加了PreTranslateMessage()函数:
BOOL CMouseDrDlg::PreTranslateMessage(MSG* pMsg) 
{
    // TODO: Add your specialized code here and/or call the base class
    if(pMsg->message == WM_KEYDOWN)
     {
            PostMessage(WM_KEYDOWN);
      }

    return CDialog::PreTranslateMessage(pMsg);
}
还是没反应,该怎么办?



zhong2008

  • 精华:0帖
  • 求助:0帖
  • 帖子:25帖 | 27回
  • 年度积分:0
  • 历史总积分:204
  • 注册:2005年11月05日
发表于:2006-07-10 20:51:00
1楼
没有人能告诉我?

热门招聘
相关主题

官方公众号

智造工程师