小卢 发表于 2012-9-21 18:41

请大神帮助。

我的C++程序 的错误时error C2065: 'lpszClassName' : undeclared identifier,请大家帮我看看错在哪儿。代码在下面:
#include<windows.h>
#include<iostream.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//窗口函数的说明

//-------------------以下为初始化窗口类
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)
{
        HWND hwnd;
        MSG Msg;
        WNDCLASS wndclass;
        char lpszCLASSName[]="窗口";//窗口类名
        char lpszTitle[]="My_Windows";//窗口标题名
        //窗口类的定义
        wndclass.style=0;              //窗口类型为默认类型
        wndclass.lpfnWndProc=WndProc;  //窗口处理函数为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=lpszClassName;//窗口类名为“窗口实例”


        //-------------------------以下进行窗口类的注册---------
        if(!RegisterClass(&wndclass))
        {
                MessageBeep(0);                   //如果注册失败则发出警告声音
                return FALSE;
        }
        hwnd=CreateWindow(
        lpszClassName,                         //窗口类名
        lpszTitle,                             //窗口实例的标题名  
        WS_OVERLAPPEDWINDOW,                   //窗口的风格
        CW_USEDEFAULT,                        
        CW_USEDEFAULT,                          //窗口左上角坐标为默认值
        CW_USEDEFAULT,                     
        CW_USEDEFAULT,                          //窗口的高和宽为默认值
        NULL,                                   //此窗口无父窗口
        NULL,                                   //此窗口无主菜单
        hInstance,                               //创建此窗口应用程序的当前句柄
        NULL                                     //不使用该值
        );
        Show Window(hwnd,nCmdShow);              //显示窗口
        Update Window(hwnd);                     //绘制用户区
        while(GetMessage(&Msg,NULL,0,0))          //消息循环
        {
                TranslateMessage(&Msg);
                DispatchMessage(&Msg);
        }
        return Msg.wParam;                       //程序终止时将消息退回系统
}

//窗口函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
        switch(message)
        {
                case WM_DESTROY;
                        PostQuitMessage(0);                      //调用PostQuitMessage发出WM_QUIT消息
        default:                                         //默认时采用系统消息默认处理函数
                return DefWindowProc(hwnd,message,wParam,lParam);
        }
        return (0);
}












       




噶及 发表于 2012-10-9 12:58

把 wndclass.lpszClassName=lpszClassName;//窗口类名为“窗口实例”
改为  wndclass.lpszClassName=lpszCLASSName;//窗口类名为“窗口实例”
把hwnd=CreateWindow(
         lpszClassName,                         //窗口类名
         lpszTitle,                             //窗口实例的标题名  & B1 c1 ]" g- l- H9 I$ l7 d7 ]
         WS_OVERLAPPEDWINDOW,                   //窗口的风格
         CW_USEDEFAULT,                           Z" @7 Q- u/ d. B! ]& y5 Q( v
         CW_USEDEFAULT,                          //窗口左上角坐标为默认值
         CW_USEDEFAULT,                     
        CW_USEDEFAULT,                          //窗口的高和宽为默认值3 S: F. [1 P: W7 T' |) q# @" d
         NULL,                                   //此窗口无父窗口$ P4 M% \: l/ x6 r. n, S
         NULL,                                   //此窗口无主菜单
         hInstance,                               //创建此窗口应用程序的当前句柄
         NULL                                     //不使用该值  i/ C. W0 [9 J9 i- E% g
         );
改为:hwnd=CreateWindow(
         lpszCLASSName,                         //窗口类名
         lpszTitle,                             //窗口实例的标题名  & B1 c1 ]" g- l- H9 I$ l7 d7 ]
         WS_OVERLAPPEDWINDOW,                   //窗口的风格
         CW_USEDEFAULT,                           Z" @7 Q- u/ d. B! ]& y5 Q( v
         CW_USEDEFAULT,                          //窗口左上角坐标为默认值
         CW_USEDEFAULT,                     
        CW_USEDEFAULT,                          //窗口的高和宽为默认值3 S: F. [1 P: W7 T' |) q# @" d
         NULL,                                   //此窗口无父窗口$ P4 M% \: l/ x6 r. n, S
         NULL,                                   //此窗口无主菜单
         hInstance,                               //创建此窗口应用程序的当前句柄
         NULL                                     //不使用该值  i/ C. W0 [9 J9 i- E% g
         );

   Show Window中间空格去掉
Update Window中间空格去掉
case WM_DESTROY;的分号改为冒号
应该就行了

小卢 发表于 2012-10-14 19:00

谢谢了。。。。。。。

ottiou 发表于 2012-12-9 17:47

。。。。zhege1这个我好想看不懂啊
页: [1]
查看完整版本: 请大神帮助。