win32新手求教
[code=C/C++][/LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent,x,y;
PAINTSTRUCT ps;
HDC hdc;
char msg[128];
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case WM_CHAR://这个是老师写的一个显示键盘按键的case,运行时,按键盘没反应
sprintf_s(msg,"%c",wParam);
MessageBox(hWnd,msg,"info",MB_OK);break;
case WM_LBUTTONDOWN://这个是老师写的显示鼠标左键点击位置的case,编译就不通过
x= (LOWORD) lParam;
y= (HIWORD) lParam;
sprintf(msg,"x=%d","y=%d",x,y);
MessageBox(hWnd,msg,"info",MB_OK);break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
]这是老师讲的用win32获取键盘按键,并显示出来,获取鼠标点击左键的位置并显示出来的程序,可能我这少了一些东西,刚接触win32,搞不懂为什么是错的,求大神们帮助
[解决办法]
- C/C++ code
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ int wmId, wmEvent,x,y; PAINTSTRUCT ps; HDC hdc; char msg[128]; switch (message) { case WM_COMMAND: { wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // 分析菜单选择: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; } } case WM_CHAR://这个是老师写的一个显示键盘按键的case,运行时,按键盘没反应 sprintf_s(msg,"%c",wParam); MessageBox(hWnd,msg,"info",MB_OK); break; case WM_LBUTTONDOWN://这个是老师写的显示鼠标左键点击位置的case,编译就不通过 x= (LOWORD) lParam; y= (HIWORD) lParam; sprintf(msg,"x=%d","y=%d",x,y); MessageBox(hWnd,msg,"info",MB_OK); break; case IDM_EXIT: DestroyWindow(hWnd); break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: 在此添加任意绘图代码... EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); break; } }return 0;}
[解决办法]
- C/C++ code
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ int wmId, wmEvent,x,y; PAINTSTRUCT ps; HDC hdc; char msg[128]; switch (message) { case WM_COMMAND: { wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // 分析菜单选择: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; } } case WM_CHAR://这个是老师写的一个显示键盘按键的case,运行时,按键盘没反应 sprintf_s(msg,"%c",wParam); MessageBox(hWnd,msg,"info",MB_OK); break; case WM_LBUTTONDOWN://这个是老师写的显示鼠标左键点击位置的case,编译就不通过 x= (LOWORD) lParam; y= (HIWORD) lParam; sprintf(msg,"x=%d","y=%d",x,y); MessageBox(hWnd,msg,"info",MB_OK); break; case IDM_EXIT: DestroyWindow(hWnd); break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: 在此添加任意绘图代码... EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); break; } }return 0;}