数学建模社区-数学中国
标题:
请大神帮助。
[打印本页]
作者:
小卢
时间:
2012-9-21 18:41
标题:
请大神帮助。
我的C++程序 的错误时error C2065: 'lpszClassName' : undeclared identifier,请大家帮我看看错在哪儿。代码在下面:
: E. {! f. N- o2 y. H* h
#include<windows.h>
4 @/ } O2 ?. Q
#include<iostream.h>
" n( W/ `/ U! [( w$ ?! Y+ G
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//窗口函数的说明
; F& T3 d( y* [$ w6 X1 k; u/ w% p
0 \$ S# z+ a; n+ y8 l. Y
//-------------------以下为初始化窗口类
; u4 A& F* @) z- }7 f- @( ^
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)
* T8 w! A( \1 d9 n) N% q
{
* B% E: d4 T& I. Y# U
HWND hwnd;
' c+ ?4 T2 P$ [2 w
MSG Msg;
) h# a9 c# E% X2 ^) e$ b5 ]
WNDCLASS wndclass;
2 o9 V8 B3 S7 `' K; }
char lpszCLASSName[]="窗口";//窗口类名
7 Y: Q2 T7 C2 u( P2 E* d# J) x
char lpszTitle[]="My_Windows";//窗口标题名
& i, z* H& p) }1 k- T3 Z9 U
//窗口类的定义
# \5 j% O, p' S1 G
wndclass.style=0; //窗口类型为默认类型
! ]8 v, Y' L f& t9 ~+ U4 }7 F
wndclass.lpfnWndProc=WndProc; //窗口处理函数为WndProc
5 F: Z: {) D& q7 c% N) I
wndclass.cbClsExtra=0; //窗口类无扩展
2 n4 Q% T/ D3 u6 N# V$ f3 m" x* Y- I
wndclass.cbWndExtra=0; //窗口实例无扩展
# G2 V. g6 S& w2 \7 U* K
wndclass.hInstance=hInstance; //当前实例句柄
* b3 M; x ?9 H( h
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口的最小化图标为默认图标
1 X% ]0 S2 B1 A4 Z9 k
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标
5 j6 p9 q$ z6 w6 _7 D
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景为白色
4 G& r! b$ e1 m
wndclass.lpszMenuName=NULL; //窗口中无菜单
% B1 D( E; w' W% @% m* X1 g* H
wndclass.lpszClassName=lpszClassName;//窗口类名为“窗口实例”
, |$ _# c7 @2 F! E: k
2 i5 v1 k" N' S% u
; M( K$ j7 Y6 s, s
//-------------------------以下进行窗口类的注册---------
. Q- S2 _6 n B# Y2 F% q( b' \
if(!RegisterClass(&wndclass))
1 x7 f/ ]6 ?0 P d. J( r% ?4 E
{
4 Z; G2 O, ^& c, o/ v( ]3 A, c
MessageBeep(0); //如果注册失败则发出警告声音
. T' L' l; Y9 d5 [: Y
return FALSE;
; @+ }- v" `, z+ Q
}
# [/ r! |: P# u
hwnd=CreateWindow(
8 j! M! q7 y' C& _7 @& e
lpszClassName, //窗口类名
: g4 A4 r2 f% M8 j
lpszTitle, //窗口实例的标题名
7 u5 i, x: t5 Y# {4 ?8 w
WS_OVERLAPPEDWINDOW, //窗口的风格
4 Y" q6 ^6 `) _7 `
CW_USEDEFAULT,
) ?2 i4 |1 s) C* A( a
CW_USEDEFAULT, //窗口左上角坐标为默认值
/ _$ h' Q# S$ S) e
CW_USEDEFAULT,
1 V' V8 M- W3 S
CW_USEDEFAULT, //窗口的高和宽为默认值
& m9 }/ @4 J: b3 S: o7 V! Y
NULL, //此窗口无父窗口
2 \3 z$ j0 N( X! s3 E7 w6 L
NULL, //此窗口无主菜单
7 ?, B' z9 O# K( v
hInstance, //创建此窗口应用程序的当前句柄
+ c) G5 C5 z" P
NULL //不使用该值
3 R( z' u% e+ u8 O0 \- D9 o' Z
);
( M- f; j7 O+ d( A
Show Window(hwnd,nCmdShow); //显示窗口
5 i! F- X2 x$ @
Update Window(hwnd); //绘制用户区
% z" C# x# N' j
while(GetMessage(&Msg,NULL,0,0)) //消息循环
% z4 n8 N/ G2 @
{
3 v; z: Z/ F) X3 ]6 M x
TranslateMessage(&Msg);
& b# Q( z6 l; K
DispatchMessage(&Msg);
; e6 w6 J( ?5 `( B* O+ P
}
) Q) v+ D1 K: v4 W
return Msg.wParam; //程序终止时将消息退回系统
`' J U+ A5 }! O3 Y" o
}
3 q5 M# }# ^! H& Q
0 [' s/ r- T" F9 m" p" |) t
//窗口函数
( }) I% |% ^; z
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
1 s. x! U; j1 Z
{
! w! r& q3 Y( Y+ F" L% D0 s
switch(message)
, U4 s+ l' @+ o1 ~. D
{
- Q+ w4 w9 ]4 y% U6 X3 J
case WM_DESTROY;
9 d9 N" ^8 }: R" K5 Y2 F
PostQuitMessage(0); //调用PostQuitMessage发出WM_QUIT消息
! `8 j# U$ B) T* x) _
default: //默认时采用系统消息默认处理函数
8 G$ E9 H4 F; }4 k5 f
return DefWindowProc(hwnd,message,wParam,lParam);
- |# u# O% R4 F/ @& m7 i; p# D5 q
}
5 Q0 T( c* [/ s2 U
return (0);
9 G' Q: F: |9 u0 T+ I' r! s, k& y
}
8 S# ^ Q7 A' r
) w2 L4 ?9 T# }2 A5 n* ~4 G
/ ]* `4 [1 ?7 z+ f! s4 I
8 z4 _ k# l* `& ]
! _! N. S3 i4 A0 ^" g/ H
. B2 q* w, p8 x' Y7 d) p
6 ]7 s; o3 A) o {
5 T' {* ?, F b9 l0 {' g: h" h
1 x$ ~- x) ^& k7 Q; [5 E
+ B3 I3 o; P; |4 t' n0 q7 y
' p0 a4 W% W. r, c# k: o6 {: ]
; X0 u% ]3 ?7 [$ L! F6 s
" u" r( ^8 M4 Q8 k# _' b
2 ?; w# e8 q9 ^
- Z+ C$ |4 j+ e
* ?' v9 ?3 H" f; P7 d6 G3 O: @/ t |
* @& `, A3 S. `5 N2 U
9 \8 j/ l0 l% ]: Q3 R& J
作者:
噶及
时间:
2012-10-9 12:58
把 wndclass.lpszClassName=lpszClassName;//窗口类名为“窗口实例”
' ?0 g0 `# h+ U+ e
改为 wndclass.lpszClassName=lpszCLASSName;//窗口类名为“窗口实例”
" L4 B: j1 @. b5 K6 G
把hwnd=CreateWindow(
& C! X( c O) s" B; R2 K9 X
lpszClassName, //窗口类名
1 T2 _3 u" [6 J7 k l+ U C
lpszTitle, //窗口实例的标题名 & B1 c1 ]" g- l- H9 I$ l7 d7 ]
1 f' Y8 D& s }5 d
WS_OVERLAPPEDWINDOW, //窗口的风格
1 e( T, u! L3 _
CW_USEDEFAULT, Z" @7 Q- u/ d. B! ]& y5 Q( v
4 p; x' q& s: C
CW_USEDEFAULT, //窗口左上角坐标为默认值
) t$ E6 Y/ |( Y' m% K1 ^0 G% S
CW_USEDEFAULT,
; o% F. U6 \3 Y4 h0 N. Q# A
CW_USEDEFAULT, //窗口的高和宽为默认值3 S: F. [1 P: W7 T' |) q# @" d
) ~9 F; ?7 n* z& [. e. ]
NULL, //此窗口无父窗口$ P4 M% \: l/ x6 r. n, S
1 ~. R# p" P( b- A# v) m) t8 T
NULL, //此窗口无主菜单
- I6 E7 ?; H T( q& s* G
hInstance, //创建此窗口应用程序的当前句柄
/ C2 q5 t% R6 Z& J, `, K$ d
NULL //不使用该值 i/ C. W0 [9 J9 i- E% g
: M0 I% M+ ^$ J7 a( s- e8 u
);
" H+ z% M s9 H& _; M$ B) o
改为:hwnd=CreateWindow(
/ ?$ Y( h1 Y s0 O' B
lpszCLASSName, //窗口类名
: e" A( A% f0 i; e( Z% T- }
lpszTitle, //窗口实例的标题名 & B1 c1 ]" g- l- H9 I$ l7 d7 ]
7 s A* j: {' f" y
WS_OVERLAPPEDWINDOW, //窗口的风格
8 p& Y$ \! f4 h; [+ N
CW_USEDEFAULT, Z" @7 Q- u/ d. B! ]& y5 Q( v
( w) w- D: F4 {6 [! g
CW_USEDEFAULT, //窗口左上角坐标为默认值
5 u- [% F1 Z' V. W+ g
CW_USEDEFAULT,
: v5 ~9 Y& r4 ?
CW_USEDEFAULT, //窗口的高和宽为默认值3 S: F. [1 P: W7 T' |) q# @" d
: J) E9 G9 U* D. u) I0 Q
NULL, //此窗口无父窗口$ P4 M% \: l/ x6 r. n, S
2 S0 r: L, S. M% v: w& [4 |8 y) v
NULL, //此窗口无主菜单
# ]5 ]' Y1 w* J3 S* }+ r
hInstance, //创建此窗口应用程序的当前句柄
$ A8 x# j4 N6 E5 \. _* p& Z
NULL //不使用该值 i/ C. W0 [9 J9 i- E% g
+ ~+ Y+ n5 m: O" B& Q
);
4 D$ O0 l5 i+ h) z' w b, i0 c
( ?# D- `" V$ b( J, Q' X P
Show Window中间空格去掉
- H# G( U4 K3 A+ A/ e8 y
Update Window中间空格去掉
0 m1 N5 M- u U( I+ t k
case WM_DESTROY;的分号改为冒号
& L. h8 @ s4 `) f/ l
应该就行了
作者:
小卢
时间:
2012-10-14 19:00
谢谢了。。。。。。。
作者:
ottiou
时间:
2012-12-9 17:47
。。。。zhege1这个我好想看不懂啊
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5