阅读:1199回复:2
编程调试
源文件:
// simpwin.cpp : Defines the entry point for the application. // #include \"stdafx.h\" #include \"e:\\vcwork\\simpwin\\simpwin.h\" HINSTANCE hInst; HWND hWndMain; //函数WinMain(HINSTANCE,HINSTANCE,LPSTR,int) //作用:调用初始化函数,处理消息循环 int APIENTRY WinMain( HINSTANCE hInstance,//当前实例句柄 HINSTANCE hPrevInstance,//前一个实例句柄 LPSTR lpCmdLine,//命令行字符串 int nCmdShow//窗口显示方式 ) { MSG msg; //初始化窗口数据,并注册窗口类 if(!InitApplication(hInstance)) return(FALSE); //创建和显示窗口,对应用程序进行必要的初始化。 if(!InitInstance(hInstance,nCmdShow)) return(FALSE); //进入消息循环;从应用程序消息队列中检取消息; //当检取的消息是一条WM_QUIT消息时,就退出消息循环。 while(GetMessage(&msg,NULL,0,0)) { //把虚拟键消息翻译为字符消息。 TranslateMessage(&msg); //把消息分配到相应的窗口过程中。 DispatchMessage(&msg); } return(msg.wParam); } //函数InitApplication(HINSTANCE) //用途:初始化窗口数据,并注册窗口类。 BOOL InitApplication( HINSTANCE hInstance//当前实例句柄。 ) { WNDCLASS wcSimpwin; //填写窗口类结构,使得其参数描述主窗口各方面的属性。 wcSimpwin.style =0; wcSimpwin.lpfnWndProc =(WNDPROC) MainWndProc; wcSimpwin.cbClsExtra =0; wcSimpwin.cbWndExtra =0; wcSimpwin.hInstance =hInstance; wcSimpwin.hIcon =LoadIcon(NULL,IDI_APPLICATION); wcSimpwin.hCursor =LoadCursor(NULL,IDC_ARROW); wcSimpwin.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; //wcSimpwin.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wcSimpwin.lpszMenuName =NULL; wcSimpwin.lpszClassName =\"SimpwinWCladd\"; //对窗口类进行注册 return(RegisterClass(&wcSimpwin)); } //函数InitInstance(HINSTANCE,int) //用途:保存实例句柄,并创建主窗口。 BOOL InitInstance( HINSTANCE hInstance,//实例句柄 int nCmdShow//窗口显示方式 ) { hInst=hInstance; CreateWindow( hWndMain=CreateWindow( \"SimpwinWClass\", \"我的窗口\", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,hInstance,NULL); //如果创建窗口失败,则返回FALSE if(!hWndMain) return(FALSE); //让窗口显示出来;并更新其客户区;最后返回TURE ShowWindow(hWndMain,nCmdShow); UpdateWindow(hWndMain); return(TRUE); } //MainWndProc(HWND,UINT,WPARAM,LPARAM) //用途:处理主窗口消息 LRESULT CALLBACK MainWndProc( HWND hWnd,//窗口句柄 UINT message,//消息类型 WPARAM wParam,//消息附带信息 LPARAM lParam//消息附带信息 ) { HDC hdc; PAINTSTRUCT ps; switch(message) { case WM_PAINT:hdc=BeginPaint(hWnd,&ps); TextOut(hdc,20,10,hello,lstrlen(hello)); EndPaint(hWnd,&ps); break; case WM_DESTROY://消息:本窗口正将被销毁。 //请求退出窗口和应用程序 PostQuitMessage(0); break; default: //调用默认窗口过程对未处理的消息进行必要的处理 return(DefWindowProc(hWnd,message,wParam,lParam)); } return(0); } 头文件 //simpwin.h LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM); BOOL InitApplication(HINSTANCE); BOOL InitInstance(HINSTANCE,int); char *hello=\"窗口外的世界很精彩,窗口外的天地也很奇妙\"; 以上程序运行时,窗口创建不成功: CreateWindow()函数返回值为0; 请问如何改动才能创建窗口?????????!!!!! |
|
最新喜欢:crashe... |
沙发#
发布于:2002-04-11 15:43
说话那么大声干什么?
在CreateWindow调用后面加一个DWORD err=GetLastError();然后看它的值是什么,就知道是什么原因出错了。 |
|
|
板凳#
发布于:2002-04-12 11:49
粗心呀,你注册的窗口类名字是 SimpwinWCladd,
CreateWindow 是用的是 SimpwinWClass 你说如何能成功??? |
|
|