是三个?wm_keydown
wm_char
wm_keyup还是一个?
wm_char

解决方案 »

  1.   

    Using Spy++Spy++ (SPYXX.EXE) is a Win32-based utility that gives you a graphical view of the system抯 processes, threads, windows, and window messages. With Spy++, you can: ?Display a graphical tree of relationships among system objects, including processes, threads, and windows.
    ?Search for specified windows, threads, processes, or messages.
    ?View the properties of selected windows, threads, processes, or messages.
    ?Select a window, thread, process, or message directly from the view.
    ?Use the Finder Tool to select a window by mouse positioning.?Set message options using complex message log selection parameters.Tip   While using Spy++, in many instances you can click the right mouse button to display a pop-up menu of frequently used commands. The commands available depend on where the pointer is. For example, if you click while pointing at an entry in the window view and the selected window is visible, the pop-up Highlight menu item will cause the border of the selected window to flash so that the window can be easily located on the screen.看到怎么用了 谢谢刺客
      

  2.   

    我个人感觉是一个,TARSLATE就是翻译,把三个消息合成一个消息
    wm_keydown 
    wm_char 
    wm_keyup
      

  3.   

    #include <windows.h>
    #include <stdio.h>LRESULT CALLBACK WinSunProc(
      HWND hwnd,      // handle to window
      UINT uMsg,      // message identifier
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    );int WINAPI WinMain(
      HINSTANCE hInstance,      // handle to current instance
      HINSTANCE hPrevInstance,  // handle to previous instance
      LPSTR lpCmdLine,          // command line
      int nCmdShow              // show state
    )
    {
    WNDCLASS wndcls;
    wndcls.cbClsExtra=0;
    wndcls.cbWndExtra=0;
    wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
    wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
    wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
    wndcls.hInstance=hInstance;
    wndcls.lpfnWndProc=WinSunProc;
    wndcls.lpszClassName="Weixin2003";
    wndcls.lpszMenuName=NULL;
    wndcls.style=CS_HREDRAW | CS_VREDRAW;
    RegisterClass(&wndcls); HWND hwnd;
    hwnd=CreateWindow("Weixin2003","北京维新科学技术培训中心",WS_OVERLAPPEDWINDOW,
    0,0,600,400,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,SW_SHOWNORMAL);
    UpdateWindow(hwnd); MSG msg;
    while(GetMessage(&msg,NULL,0,0))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    return 0;
    }LRESULT CALLBACK WinSunProc(
      HWND hwnd,      // handle to window
      UINT uMsg,      // message identifier
                           
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    )
    {
    switch(uMsg)
    {
    case WM_CHAR:
    char szChar[20];
    sprintf(szChar,"char is %d",wParam);
    MessageBox(hwnd,szChar,"weixin",0);
    break;
    case WM_LBUTTONDOWN:
    MessageBox(hwnd,"mouse clicked","weixin",0);
    HDC hdc;
    hdc=GetDC(hwnd);
    TextOut(hdc,0,50,"计算机编程语言培训",strlen("计算机编程语言培训"));
    ReleaseDC(hwnd,hdc);
    break;
    case WM_PAINT:
    HDC hDC;
    PAINTSTRUCT ps;
    hDC=BeginPaint(hwnd,&ps);
    TextOut(hDC,0,0,"维新培训",strlen("维新培训"));
    EndPaint(hwnd,&ps);
    break;
    case WM_CLOSE:
    if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))
    {
    DestroyWindow(hwnd);
    }
    break;
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    default:
    return DefWindowProc(hwnd,uMsg,wParam,lParam);
    }
    return 0;
    }晕倒用SPY++看不到WM_KEYDOWN  消息只有WM_KEYUP+一个虚拟键值
      

  4.   

    顶,你可以在重载proc中,对三个消息,都用outputdebugstr,来看看那个有信息输出,这样就可以看出那个消息相应了
      

  5.   

    我加了几行程序         case WM_KEYDOWN:
     MessageBox(hwnd,"keydown","weixin",0);
    break;
    case WM_KEYUP:
    MessageBox(hwnd,"keyup","weixin",0);
    break; case WM_CHAR:
    char szChar[20];
    sprintf(szChar,"char is %d",wParam);
    //MessageBox(hwnd,szChar,"weixin",0);
    break;证明  三个消息都有!!
    SPY++还是不会用吧仔细读说明去
    谢谢大家结贴