if(! RegisterClass(&wc)) MessageBox(NULL,"注册窗口类失败","错误",MBOK); 海疗 return -1 in=CreateWindow(szClassName, szAppTitle, WS_OVERLAPPEDWINDOW CW USEDEFAULT, CW USEDEFAULT CW USEDEFAULT, CW USEDEFAULT Windows程序的基本结构 小结 NULL, NULL, hInstance, 0) if(!hwin) MessageBox(NUL,"创建窗口失败","错误",MB_OK) return -1 访问主页 标题页 Sh。w啊 indow(hWin, nCmdshow); UpdateWindow(hwin) 第4页共13页 全屏显示 关闭
Windows§SÄ( ( ¯ Ì I K JJ II J I 1 4 13 £ ¶ w « ' 4 ò Ñ if(!RegisterClass(&wc)){ MessageBox(NULL,"5þIa}","Ø",MB_OK); return -1; } hWin=CreateWindow(szClassName,szAppTitle,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,hInstance,0); if(!hWin){ MessageBox(NULL,"MïI}","Ø",MB_OK); return -1; } ShowWindow(hWin,nCmdShow); UpdateWindow(hWin);
if(! RegisterClass(&wc)) MessageBox(NULL,"注册窗口类失败","错误",MBOK); 海疗 return -1 hwin=CreateWindow(szClassName, szAppTitle, WS_OVERLAPPEDWINDOW CW USEDEFAULT, CW USEDEFAULT CW USEDEFAULT, CW USEDEFAULT Windows程序的基本结构 小结 NULL, NULL, hInstance, 0) if(!hwin) MessageBox(NUL,"创建窗口失败","错误",MB_OK) return -1 访问主页 标题页 Sh。w啊 indow(h啊in, nCmdshow); UpdateWindow(hWin) while(GetMessage(&msgMessage, NULL, 0,0)) 第4页共13页 TranslateMessage(&msgMessage)i DispatchMessage(&msgMessage) 全屏显示 return 0: 关闭
Windows§SÄ( ( ¯ Ì I K JJ II J I 1 4 13 £ ¶ w « ' 4 ò Ñ if(!RegisterClass(&wc)){ MessageBox(NULL,"5þIa}","Ø",MB_OK); return -1; } hWin=CreateWindow(szClassName,szAppTitle,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,hInstance,0); if(!hWin){ MessageBox(NULL,"MïI}","Ø",MB_OK); return -1; } ShowWindow(hWin,nCmdShow); UpdateWindow(hWin); while(GetMessage(&msgMessage,NULL,0,0)){ TranslateMessage(&msgMessage); DispatchMessage(&msgMessage); } return 0; }
LRESULT CALLBACK WinProc(HWND hWin, UINT uMsg, WPARAM wPrm, LPARAM IPrm)i switch(uMsg) case WM DESTROY Windows程序的基本结构 小结 P。 stouitMessage(0); break; 访问主页 defau1七 标题页 return DefwindowProc(hWin, uMsg, wPrm, pRm)i 第5页共13页 全屏显示 关闭
Windows§SÄ( ( ¯ Ì I K JJ II J I 1 5 13 £ ¶ w « ' 4 ò Ñ LRESULT CALLBACK WinProc(HWND hWin,UINT uMsg,WPARAM wPrm,LPARAM lPrm){ switch(uMsg){ case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWin,uMsg,wPrm,lPrm); } return 0; }
Win main函数: Windows程序的入口点 函数原型为 int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst LPSTR lpCmdLine, int nShowCmd) 小结 访问主页 标题页 第6页共13页 全屏显示 关闭
Windows§SÄ( ( ¯ Ì I K JJ II J I 1 6 13 £ ¶ w « ' 4 ò Ñ ⑧ WinMain()¼êµWindows§S\: ¼ê.µ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShowCmd);
WinMain函数: Windows程序的入口点 函数原型为: 信息学与工程学 int APIENTRY WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR IpCmdLine, int nShowCmd); 其中: Windows程序的基本结构 APIENTRY #define APIENTRY WINAPI 小结 WINAPI是系统函数调用的约定,代替早先的 FAR PASCAL,由系统 自动转换成合适的调用方式。FAR早期定义成far,指跨段的存 访问主页 取,Win32不再使用,在32位的VC中其定义是空; PASCAL指函数参 标题页 数从左到右求值,函数调用返回时由被调用函数自己清理栈 第6页共13页 返回 全屏显示 关闭 退出
Windows§SÄ( ( ¯ Ì I K JJ II J I 1 6 13 £ ¶ w « ' 4 ò Ñ ⑧ WinMain()¼êµWindows§S\: ¼ê.µ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShowCmd); Ù¥µ ✑ APIENTRY =⇒ #define APIENTRY WINAPI WINAPI´XÚ¼êN^½§O@kFAR PASCAL§dXÚ gÄ=¤Ü·N^ª"FAR@Ͻ¤far§ªã §Win32Ø2¦^§332 VC¥Ù½Â´¶PASCAL¼êë êlm¦§¼êN^£dN^¼êgCnÒ