首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

鼠标按下、弹起消息练习时出错了解决方案

2012-06-15 
鼠标按下、弹起消息练习时出错了C/C++ code////鼠标按下、弹起消息//2012.4.18//

鼠标按下、弹起消息练习时出错了

C/C++ code
//================//鼠标按下、弹起消息//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;}


[解决办法]
你建的工程类型不对,要见win32 application而不是console控台程序
当然你可以直接在现在的工程属性里改下:

Linker-->Command Line 加上底下的那个编辑框里输入/SUBSYSTEM:WINDOWS
[解决办法]
你的WinMain函数呢?都没有函数体,多看<Windows程序设计第五版> 这本书

热点排行