我想要的效果是::当我按下键盘上的某个键,它可以选中界面上的按钮,并切和鼠标点击选中它的效果一样!不知道该怎么办!
苦苦等待中.......

解决方案 »

  1.   

    HWND hwnd = ::GetDlgItem(hParent,IDC_BUTTON2);
    ::SendMessage(hwnd, BM_CLICK,NULL,NULL);
      

  2.   

    获得对应按钮的句柄,然后BM_CLICK模拟点击
      

  3.   

    上面写的是怎么模拟点击按钮,
    下面写下如何响应按键:在消息处理函数里边:
        switch (message)
        {
            case WM_CHAR:
                    OnChar(win, wParam);
                break;        case WM_KEYDOWN:
                    OnKeydown(win, wParam, lParam);
                break;这两个消息应该都可以用。WM_KEYDOWN好一点吧。
      

  4.   

    thanks  very very much
      

  5.   


    我按大侠说的做了,但是有问题::我发现每次它只能对一个button管用,当我想让其它的buttton也有同样的效果时,
     我必须再次重新执行程序才行!也就是说每次只对一个 button管用!实在纳闷!恳求帮忙!
      

  6.   

    我是想让一个Button按钮对应一个键盘,而且当程序运行界面出现后,几个按钮在我按下它们所对应的键时,可以相互切换!
    谢谢! 
      

  7.   

    组合键还是单键?
    组合键使用加速键处理.
    单键:
    SetFocus();//让当前窗口接受键盘消息
    OnKeyDown();//处理击键消息
      

  8.   

    老大::
    我现在的问题是使用了::HWND hwnd = ::GetDlgItem(hParent,IDC_BUTTON2);
    ::SendMessage(hwnd, BM_CLICK,NULL,NULL);
     之后,键盘只对一个button 按钮管用,其它几个按钮都不响应键盘消息了!不知道怎么办.............
      

  9.   

    把需要响应的button用列表来管理,循环POSTMessage BM_CLICK消息处理.
      

  10.   

    ]是的,但是现在的问题是使用了::HWND hwnd = ::GetDlgItem(hParent,IDC_BUTTON2);
    ::SendMessage(hwnd, BM_CLICK,NULL,NULL);
    之后,按下键盘上的"A",就能触发按钮1,就像我们认为按下的一样,
     当我再次按键盘上的“B”时。不能触发按钮2的点击事件,界面毫无反应!
    恳请指教,不胜感激!