数学建模社区-数学中国
标题:
请大神帮助。
[打印本页]
作者:
小卢
时间:
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! d
int 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. N
1 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! ~: H
3 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/ y
case 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