鼠标按下、弹起消息练习时出错了
//================//鼠标按下、弹起消息//2012.4.18//================#include<windows.h>#include<stdio.h>LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ int xPos, yPos; HDC hdc; char szText[255] = "\0"; char szCtrl[255] = "\0"; char szPos[255] = "\0"; static int nCount=0; switch (message) { case WM_LBUTTONDOWN: sprintf(szText, "%-20s", "WM_LBUTTONDOWN"); break; case WM_LBUTTONUP: sprintf(szText, "%-20s", "WM_LBUTTONUP"); break; case WM_RBUTTONDOWN: sprintf(szText, "%-20s", "WM_RBUTTONDOWN"); break; case WM_RBUTTONUP: sprintf(szText, "%-20s", "WM_RBUTTONUP"); break; case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hWnd, message, wParam, lParam); } // 下面判断键盘上是否按下了Ctrl或者Shift键 if((wParam & MK_CONTROL) == MK_CONTROL) // Ctrl键已经按下 sprintf(szCtrl, "%-10s", "Control"); else if((wParam & MK_SHIFT) == MK_SHIFT) // Shift键已经按下 sprintf(szCtrl, "%-10s", "Shift");// Ctrl和Shift键是否都按下 if((wParam & (MK_CONTROL | MK_SHIFT)) == (MK_CONTROL | MK_SHIFT)) sprintf(szCtrl, "%-30s", "Shift and Control"); xPos = LOWORD(lParam); yPos = HIWORD(lParam); sprintf(szPos, "xPos = %3d yPos = %3d", xPos, yPos); strcat(szText, szCtrl); strcat(szText, szPos); // 将设置好的字符串显示在窗口上 hdc = GetDC(hWnd); TextOut(hdc, 0, nCount*20, szText, strlen(szText)); ReleaseDC(hWnd, hdc); nCount++; return 0;}