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.看到怎么用了 谢谢刺客
?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.看到怎么用了 谢谢刺客
wm_keydown
wm_char
wm_keyup
#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+一个虚拟键值
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++还是不会用吧仔细读说明去
谢谢大家结贴