数学建模社区-数学中国

标题: 请大神帮助。 [打印本页]

作者: 小卢    时间: 2012-9-21 18:41
标题: 请大神帮助。
我的C++程序 的错误时error C2065: 'lpszClassName' : undeclared identifier,请大家帮我看看错在哪儿。代码在下面:5 h) P8 K8 I; X2 i
#include<windows.h>
( F2 G8 }% \2 v, i$ s" g#include<iostream.h>. _& r( y$ J4 h' W8 B% d, `
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//窗口函数的说明! H% ~% h9 s  _8 W1 A! Y7 |- A) U

' \& @7 D7 d) I: q- Y% O  g2 J5 o//-------------------以下为初始化窗口类
- `! Y( y7 E! dint WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)% Z* c, @4 C) B
{) s' D! N2 P( U- t
        HWND hwnd;4 ]/ l# `: l1 d' t
        MSG Msg;& W, z; l( V( `; D0 _; z
        WNDCLASS wndclass;- {: e7 Q5 H+ `' \$ k9 O
        char lpszCLASSName[]="窗口";//窗口类名) {6 s1 X$ d. d5 D* P4 d2 z
        char lpszTitle[]="My_Windows";//窗口标题名2 m7 b! q6 n1 I  ]+ `  _
        //窗口类的定义
4 ^4 N; N. ?  k        wndclass.style=0;              //窗口类型为默认类型
" v2 e8 f& V6 ~: i: Q        wndclass.lpfnWndProc=WndProc;  //窗口处理函数为WndProc
  Q1 v; E/ v& B1 U0 y) H3 _8 [        wndclass.cbClsExtra=0;         //窗口类无扩展& I( z1 @$ E7 T- F7 M) p" S- ~9 I
        wndclass.cbWndExtra=0;          //窗口实例无扩展; ], Z  u: v, n/ i8 F' G+ F8 J
        wndclass.hInstance=hInstance;   //当前实例句柄
: o/ o3 N  t5 C# `; h# f        wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口的最小化图标为默认图标4 h* C: x- P: a3 O, _% s: L
        wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);  //窗口采用箭头光标
0 R$ j) D* ?8 j; ~        wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景为白色
3 B# z7 u6 ~5 D3 N( K9 U# V        wndclass.lpszMenuName=NULL;      //窗口中无菜单/ d2 H! D2 Y* O# l: u3 b
        wndclass.lpszClassName=lpszClassName;//窗口类名为“窗口实例”
2 x" H! N, R. N1 O5 r8 ?* w* W0 p
" |$ R4 v  n* f" F6 Q6 A' G8 h
        //-------------------------以下进行窗口类的注册---------
+ e# M# j5 s9 |% [2 q        if(!RegisterClass(&wndclass))
  K% G% d+ e2 Z% T* s1 [        {/ V2 c. k# ~6 W
                MessageBeep(0);                   //如果注册失败则发出警告声音% X% D" i' H5 N0 Y) J
                return FALSE;
" F4 O# J# o; x% R" S+ ~        }
& s  w+ \  B/ f7 Y        hwnd=CreateWindow(# U2 w  ~5 ]2 T4 g2 O- b
        lpszClassName,                         //窗口类名
# Z# Q! U  o4 s& \  S* R- {        lpszTitle,                             //窗口实例的标题名  
! h! Z9 @/ w6 I* ?: i0 M/ O        WS_OVERLAPPEDWINDOW,                   //窗口的风格4 z7 i& x3 ]* u6 v# s
        CW_USEDEFAULT,                         ; A0 m  b5 f8 R# \; F, L
        CW_USEDEFAULT,                          //窗口左上角坐标为默认值
( C5 t, x& R/ W        CW_USEDEFAULT,                        d' m4 c/ b# R( h% h3 t$ `$ ]
        CW_USEDEFAULT,                          //窗口的高和宽为默认值( f2 P4 B5 H% k4 {- T- a
        NULL,                                   //此窗口无父窗口1 t  s. N  e* @% u
        NULL,                                   //此窗口无主菜单5 f: ^& v' i. \7 y
        hInstance,                               //创建此窗口应用程序的当前句柄& |" ], b- }% m5 ]  z' V# a
        NULL                                     //不使用该值
! b7 I0 O! W" `2 A% \        );
5 _- {/ U( ^5 m) E        Show Window(hwnd,nCmdShow);              //显示窗口; z5 m( F( c, V/ ~2 _0 R; t
        Update Window(hwnd);                     //绘制用户区
6 H/ ?* t- j  m7 m        while(GetMessage(&Msg,NULL,0,0))          //消息循环
) M# i; g+ ?+ A4 Y, m$ Q        {
$ s0 I1 p1 m" I# D, Y                TranslateMessage(&Msg);+ j% B! D0 O) n; _* ]
                DispatchMessage(&Msg);
0 D+ _! m* c2 i8 T' `  X        }+ j5 Q% B+ F) T
        return Msg.wParam;                       //程序终止时将消息退回系统* {3 G% L8 B" I0 K
}
. ~/ s& Q9 R% g2 }9 s% _/ k) F" \; n% O+ z
//窗口函数& l4 a2 q8 ]5 W/ o& u6 J: b
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)$ b" v" `: p4 J9 f
{: A* i9 W1 T) y% W9 |4 j+ `" j
        switch(message)4 K' ?% s6 G; |( \
        {- B% O3 y  d, f8 N5 Y+ m2 n
                case WM_DESTROY;+ E2 h! e) Q' U" V
                        PostQuitMessage(0);                      //调用PostQuitMessage发出WM_QUIT消息2 ]3 I' _0 m$ G0 T: O' F; ?
        default:                                         //默认时采用系统消息默认处理函数
0 F: }5 w2 q% {! L( J                return DefWindowProc(hwnd,message,wParam,lParam);
/ _+ ^( j/ W. B$ f% ~, U4 y        }
* K( s3 M$ _  y& s/ |; l& i        return (0);0 x& n* X# F( i; F7 k
}6 V+ A0 {$ p$ o2 N
/ D+ M+ J1 _6 U6 J
0 P# j2 G2 Z( _7 X

" S5 v/ H% k" O. C: L8 w
1 v4 n& Y1 c4 F4 y3 D3 B+ Q. ?+ [( s) c& l# g1 g+ \2 \) O

  V0 a$ {2 f5 {. b# A# e4 X3 D: U1 t  `( ]

$ V4 [8 k8 V0 G0 [8 ~# r; u. X' d1 V8 w, h
9 E8 C4 P/ H* C3 |
1 h  B8 q$ c, P) R7 r6 C
) G' n5 |2 w8 w* J5 a9 Q
        3 U# F/ j6 ^; L# o: @

: c4 i$ u6 ^  g7 I: ]! P' x+ e% X7 `+ _( f

& U+ r9 Y+ y) r! ~: H3 d& w: k6 g( ]$ H9 W

作者: 噶及    时间: 2012-10-9 12:58
把 wndclass.lpszClassName=lpszClassName;//窗口类名为“窗口实例”
; l1 M8 C8 ?, a# y/ t0 a, p改为  wndclass.lpszClassName=lpszCLASSName;//窗口类名为“窗口实例”9 I7 a- d% [- ?. r5 M+ M6 ^
把hwnd=CreateWindow(
8 M$ `5 ^; i9 f( ~. x! ^4 n* }         lpszClassName,                         //窗口类名: Q4 f7 [. n$ r
         lpszTitle,                             //窗口实例的标题名  & B1 c1 ]" g- l- H9 I$ l7 d7 ]
. l" n5 G' ^7 g9 l         WS_OVERLAPPEDWINDOW,                   //窗口的风格4 n2 t) {) n# y' z/ c- F' W
         CW_USEDEFAULT,                           Z" @7 Q- u/ d. B! ]& y5 Q( v
/ l3 @8 @- I! B% z1 F         CW_USEDEFAULT,                          //窗口左上角坐标为默认值1 ^9 f4 Q  S0 w
         CW_USEDEFAULT,                      : \& R" F9 k: y: ~% A
        CW_USEDEFAULT,                          //窗口的高和宽为默认值3 S: F. [1 P: W7 T' |) q# @" d! c- W' M5 C/ D$ E  h
         NULL,                                   //此窗口无父窗口$ P4 M% \: l/ x6 r. n, S
4 M7 t' v* T0 Y4 z# g7 D" x         NULL,                                   //此窗口无主菜单
2 l; U4 n& f' O- S& ~! @         hInstance,                               //创建此窗口应用程序的当前句柄# A: l6 o9 }& U" f
         NULL                                     //不使用该值  i/ C. W0 [9 J9 i- E% g/ x6 ?2 }% Z8 m
         );: ?3 H- U( g0 D+ J6 @% W% T
改为:hwnd=CreateWindow(  x3 N& F1 f# ?6 {, K0 n
         lpszCLASSName,                         //窗口类名: L' @, k( b' Z6 g& c
         lpszTitle,                             //窗口实例的标题名  & B1 c1 ]" g- l- H9 I$ l7 d7 ]  K: B. |' u5 u1 V
         WS_OVERLAPPEDWINDOW,                   //窗口的风格
7 i4 z( I0 T7 [         CW_USEDEFAULT,                           Z" @7 Q- u/ d. B! ]& y5 Q( v! r2 R3 j* t8 v- g
         CW_USEDEFAULT,                          //窗口左上角坐标为默认值
/ D8 q- v; Q& Z& ^         CW_USEDEFAULT,                     
  C% {. H! p9 B* K7 m        CW_USEDEFAULT,                          //窗口的高和宽为默认值3 S: F. [1 P: W7 T' |) q# @" d
6 P4 M' h- v- W         NULL,                                   //此窗口无父窗口$ P4 M% \: l/ x6 r. n, S# H  c- ^8 n  T: }* z2 T
         NULL,                                   //此窗口无主菜单% ~" G" B- ?9 [" K9 G4 M
         hInstance,                               //创建此窗口应用程序的当前句柄, Z9 K/ G2 L2 u0 K) b) T0 w5 M7 c
         NULL                                     //不使用该值  i/ C. W0 [9 J9 i- E% g/ ^- ?( x  `! w, Y& q
         );4 {* K0 N. c6 M+ ~

& H8 {4 y/ Y+ [4 L7 O' K   Show Window中间空格去掉# Y8 Y8 ~) p2 x- R
Update Window中间空格去掉
3 n9 C1 w! o1 Q6 Y2 Y' L/ ycase WM_DESTROY;的分号改为冒号
  A  }/ ^& V3 l% W应该就行了
作者: 小卢    时间: 2012-10-14 19:00
谢谢了。。。。。。。
作者: ottiou    时间: 2012-12-9 17:47
。。。。zhege1这个我好想看不懂啊




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5