lijialijialijia 发表于 2019-2-10 16:46:01

关于Windows程序设计第三章的那个窗口程序为什么报错

#include<windows.h>

LRESULTCALLBACKWndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
        static TCHAR szAppName[] = TEXT("大妈,你在家吗?");

        HWND   hwnd;
        MSG   msg;
        WNDCLASSwndclass;

        wndclass.style = CS_HREDRAW | CS_VREDRAW;

        wndclass.lpfnWndProc = WndProc;

        wndclass.cbClsExtra = 0;

        wndclass.cbWndExtra = 0;

        wndclass.hInstance = hInstance;

        wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);

        wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);

        wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

        wndclass.lpszMenuName = NULL;

        wndclass.lpszClassName = szAppName;

        if (!RegisterClass(&wndclass))
        {
                MessageBox(NULL, TEXT("This program requires Windows NT!"), szAppName, MB_ICONERROR);

                return 0;
        }

        hwnd = CreateWindow(szAppName,   //窗口的类名
                TEXT("the hello program"),
                WS_OVERLAPPEDWINDOW,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                NULL,
                NULL,
                hInstance,
                NULL);

        ShowWindow(hwnd, iCmdShow);

        UpdateWindow(hwnd);

        while( GetMessage ( &msg , NULL ,0 , 0))
        {
                TranslateMessage(&msg);

                DispatchMessage(&msg);
        }

        returnmsg.wParam;
}

LRESULTCALLBACKWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        HDC                                hdc;
        PAINTSTRUCT   ps;
        RECT         rect;

        switch (message)
        {
        case WM_CREATE:

                PlaySound(TEXT("一个窗口.wav"), NULL, SND_FILENAME | SND_ASYNC);
                return 0;

        caseWM_PAINT:
                hdc = BeginPaint(hwnd, &ps);

                GetClientRect(hwnd, &rect);

                DrawText(hdc, TEXT("你好,老干妈"), -1, &rect,
                        DT_SINGLELINE | DT_CENTER | DT_VCENTER);

                EndPaint(hwnd, &ps);

        caseWM_DESTROY:
                PostQuitMessage(0);
                return 0;
        }

        return DefWindowProc(hwnd, message, wParam, lParam);
}

运行时为什么报错

TyCk 发表于 2019-2-10 17:11:19

报什么错,楼主贴上来呀{:10_261:}{:10_261:}

superbe 发表于 2019-3-1 19:00:23

添加winmm.lib了吧
另外,窗口过程中wm_paint的消息处理代码最后少了return 0;
页: [1]
查看完整版本: 关于Windows程序设计第三章的那个窗口程序为什么报错