首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请帮忙跪下求您帮忙解决(下辈子给您做牛做马)解决思路

2012-03-02 
请帮忙跪下求您帮忙解决(下辈子给您做牛做马)#includewindows.hLRESULTCALLBACKWndProc(HWND,UINT,WPARA

请帮忙跪下求您帮忙解决(下辈子给您做牛做马)
#include   <windows.h>
LRESULT   CALLBACK   WndProc(HWND,UINT,WPARAM,LPARAM);
HWND   hwnd;
UINT   message;
WPARAM   wParam;
LPARAM   lParam;
int   WINAPI   WinMain(HINSTANCE   hInstance,HINSTANCE   hPrevInstance,LPSTR   lpCmdLine,int   nCmdshow)
{


MSG   msg;
WNDCLASS   wndclass;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=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= "HelloWin ";
if(!RegisterClass(&wndclass))
{
MessageBox(NULL, "窗口注册失败! ", "HelloWin ",0);
return   0;
}
hwnd=CreateWindow( "HelloWin ", "我的窗口 ",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nCmdshow);
UpdateWindow(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_CREATE:
return   0;
case   WM_LBUTTONDOWN:
MessageBox(NULL; "你好,我的Visual   C++世界! ", "问候 ",0);
return   0;
case   WM_DESTROY:
PostQuitMessage(0);
return   0;
}
}
return   DefWindowProc(hwnd,message,wParam,lParam);
}
编译出错信息:Compiling...
hello.cpp
E:\test\Ex_HelloApp\hello.cpp(38)   :   error   C2601:   'WndProc '   :   local   function   definitions   are   illegal
执行   cl.exe   时出错.

怎么弄才能解决啊?救命,就这么个小问题浪费了我半天时间,我还是照书上原原本本的打上去的来.这么下去,我80岁能学会C++就很了不起了.

[解决办法]
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdshow)
{


MSG msg;
WNDCLASS wndclass;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=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=TEXT( "HelloWin "); //!!!
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT( "窗口注册失败! "),TEXT( "HelloWin "),0); //!!!
return 0;
}
hwnd=CreateWindow(TEXT( "HelloWin "),TEXT( "我的窗口 "),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nCmdshow);
UpdateWindow(hwnd);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return static_cast <int> (msg.wParam); //!!!
} //!!!

// WndProc 要单独定义!!!
LRESULT CALLBACK WndProc (HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)


{
switch(message)
{
case WM_CREATE:
return 0;
case WM_LBUTTONDOWN:
MessageBox(NULL,TEXT( "你好,我的Visual C++世界! "),TEXT( "问候 "),0); //!!!
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}

热点排行