比如,我在一个IDOK的ONOK函数中,想发一个“TAB”按键信息,应该怎么做?
就象PostMessage( hWnd, WM_KEYDOWN , 55, 4321 ); 中55,4321是什么意思?我想应该可以发一个WM_KEYDOWN消息?是不是同时还要发一个WM_KEYUP消息?

解决方案 »

  1.   

    给谁发?看看MSDN关于WM_KEYDOWN的说明
      

  2.   

    UINT SendInput(
      UINT nInputs,     // count of input events
      LPINPUT pInputs,  // array of input events to insert
      int cbSize        // size of an INPUT structure
    );
      

  3.   

    给本身发啊。我英文不怎么好,瞅了半天MSDN瞅不出什么东东来。、、、、、、、、、、、、
    SendInput??我看看。
      

  4.   

    不要发WM_KEYDOWN消息,最好发WM_CHAR消息。事实上TAB键按下时发WM_KEYDOWN,然后是WM_CHAR,然后是WM_KEYUP,如果你发了WM_KEYDOWN,就必须发WM_KEYUP(按道理WM_CHAR也是需要发的,否则就不能完全模拟出键盘输入的效果了),挺麻烦的。直接发WM_CHAR就简单一点了。
      

  5.   

    可是问题是我现在不知道那参数怎么放,WPARAM还有一个什么PARAM。不知道怎么设置。我看了很久MSDN看不出什么来。
      

  6.   

    SendMessage( WM_CHAR, (WPARAM)9, (LPARAM)983041 );
      

  7.   

    9和983041怎么得来的?
    还有,在MSDN里到哪找要发什么消息啊?
      

  8.   

    9是TAB键的键值,983041是一些键盘状态的信息。
    你可以查一下KeyboardInput的专题。
      

  9.   

    PostMessage(hWnd, WM_KEYDOWN , (WPARAM)VK_TAB, 0);
    PostMessage(hWnd, WM_KEYUP , (WPARAM)VK_TAB, 0);