radio983 发表于 2008-6-11 16:05

请教高手,我是初学者,问题出在哪,谢谢啦!

# include <windows.h>
# include <stdio.h>

LRESULT CALLBACK WinSunProc(
        HWND hwnd,
        UINT uMag,
        WPARAM wParam,
        LPARAM lParam
)


int WINAPI WinMain(
        HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR lpCmdLine,
        int nCmdShow
)
{
        WNDCLASS wndcls;
        wndcls.cbClsExtra=0;
        wndcls.cbWndExtra=0;
        wndcls.hbrBackgroud=(HBRUSH)GetStockObject(BLACK_BRUSH);
        wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
        wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
        wndcls.hInstance=hInstance;
        wndcls.lpfnWndProc=WinSunProc;
        wndcls.lpszClassName="radio983";
        wndcls.lpszMenuName=NULL;
        wndcls.style=CS_HREDRAW | CS_VREDRAW;
        RegristerCLASS(&wndcls);

        HWND Hwnd;
        Hwnd=CreateWindow("radio983","抄袭编程",WS_OVERLAPPEDWINDOW,
                0,0,800,600,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,
        UINT uMag,
        WPARAM wParam,
        LPARAM lParam
)
{
        switch(uMag)
        {
        case WM_CHAR:
                char szChar[20];
                sprintf(szChar,"char is %d,wParam);
                MessageBox(hwnd,szChar,"radio983",0);
                break;
        case WM_LBUTTONDOWN:
                MessageBox(hwnd,"mouse clicked","radio983",0);
                HDC=hdc;
            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 WN_CLOSE:
                if(IDYES==MessageBox(hwnd,"是否真得结束?","radio983",MB_YESNO))
                {
                        DestroyWindow(hwnd);
                }
                break;
        case WN_DESTORY:
                PostQuitMessage(0);
                break;
        default:
                return DfeWindowProc(hwnd,uMag,wParam,lParam);
        }
        return 0;
}

————————————————————————————————————————————
--------------------Configuration: winmain - Win32 Debug--------------------
Compiling...
winmain.cpp
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(12) : warning C4518: 'int ' : storage-class or type specifier(s) unexpected here; ignored
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(12) : error C2143: syntax error : missing ';' before '__stdcall'
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(22) : error C2039: 'hbrBackgroud' : is not a member of 'tagWNDCLASSA'
        d:\vc98\include\winuser.h(1184) : see declaration of 'tagWNDCLASSA'
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(30) : error C2065: 'RegristerCLASS' : undeclared identifier
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(58) : error C2001: newline in constant
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(59) : error C2146: syntax error : missing ')' before identifier 'MessageBoxA'
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(63) : error C2513: 'struct HDC__ *' : no variable declared before '='
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(63) : error C2065: 'hdc' : undeclared identifier
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(65) : error C2065: 'ReleaseDc' : undeclared identifier
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(68) : error C2513: 'struct HDC__ *' : no variable declared before '='
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(68) : error C2065: 'hDC' : undeclared identifier
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(70) : error C2065: 'hDc' : undeclared identifier
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(70) : error C2440: '=' : cannot convert from 'struct HDC__ *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(74) : error C2065: 'WN_CLOSE' : undeclared identifier
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(74) : error C2051: case expression not constant
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(80) : error C2065: 'WN_DESTORY' : undeclared identifier
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(80) : error C2051: case expression not constant
D:\Program Files\MSDev98\MyProjects\lesson1\winmain.cpp(84) : error C2065: 'DfeWindowProc' : undeclared identifier
执行 cl.exe 时出错.

winmain.exe - 1 error(s), 0 warning(s)

ipx 发表于 2008-6-12 10:55

代码已帮你改正确了,太不认真了.你很多字打错了

# include <windows.h>
# include <stdio.h>

LRESULT CALLBACK WinSunProc(
    HWND hwnd,
    UINT uMag,
    WPARAM wParam,
    LPARAM lParam
);//函数的声明,要;号


int WINAPI WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow
)
{
    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="radio983";
    wndcls.lpszMenuName=NULL;
    wndcls.style=CS_HREDRAW | CS_VREDRAW;
    RegisterClass(&wndcls);//你单词错了

    HWND Hwnd;
    Hwnd=CreateWindow("radio983","抄袭编程",WS_OVERLAPPEDWINDOW,
        0,0,800,600,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,
    UINT uMag,
    WPARAM wParam,
    LPARAM lParam
)
{
    switch(uMag)
    {
    case WM_CHAR:
        char szChar[20];
        sprintf(szChar,"char is %d",wParam);//掉了"
        MessageBox(hwnd,szChar,"radio983",0);
        break;
    case WM_LBUTTONDOWN:
        MessageBox(hwnd,"mouse clicked","radio983",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,"是否真得结束?","radio983",MB_YESNO))
        {
            DestroyWindow(hwnd);
        }
        break;
    case WM_DESTROY :
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd,uMag,wParam,lParam);
    }
    return 0;
}

页: [1]

编程论坛