int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;
hInst = hInstance;
if (!InitApplication(hInstance)) return(FALSE);
if (!InitInstance(hInstance,nCmdShow)) return(FALSE);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}
这是Win32程序的入口函数,完成窗口类的注册、窗口创建、获取调用线程的消息、消息转换、消息分派等操作。
InitApplication()函数的使用:windows操作系统的最大特点是什么?当然是大大小小、无处不在的窗口,想创建一个程序,一般情况下当然要创建窗口了。这个有点像开商店,先选好场地,然后到工商局申请营业执照:
WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX);
……
商店名称、经营范围等等在这里填清楚。开多少家都可以,只要你的本钱足够。
之后是等候审批,这个审批速度比咱们工商局快多了,只要是合法经营,瞬间就给你批下来。不用找关系送烟什么的,老盖这点还算清廉。
if( !RegisterClassEx( (LPWNDCLASSEX)&wc )) return FALSE;
如果批准了,那么你就可以准备开张了,否则,就是无照经营。无照经营,在老盖的统治下是绝对不可以的啊。
InitInstance()函数的使用:执照批了,下一步就是装修门面了。
hWnd = CreateWindowEx (),
装修得合乎城建的规定,如果违章,那你还是不能开业。
if(!hWnd) return(FALSE);
一切工作都做好了,就可以开门营业了:
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
获得系统信息。
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
这段我觉得跟咱们村公所非常像。
GetMessage()接待、接电话、跑腿的,一天24小时都在村公所呆着。TranslateMessage(支书)、DispatchMessage(村长)一般都在家里干私活,有事才到村公所,不像咱们上班一族那么正规的。如果乡党委、政府有事找支书、村长,GetMessage这人马上就会去通知他们,不至于因为找不着人把官给丢了。
MainWndProc()函数的使用:你的买卖就在这里进行。
如果不想做买卖了,记得去工商局注销执照,还有商场租用合同、水呀、电呀、闭路电视、电话等等都得报停结算清楚,我想没有谁还很乐意继续交这些费吧。
case WM_DESTROY:
DeleteObject(MyFont);
FreeMBArray();
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd,message,wParam,lParam));
}
return(DefWindowProc(hWnd,message,wParam,lParam));
系统给每个窗体过程的消息、数据都是标配的,很多根本就用不着,这时就需要返回给默认的函数处理。
跟老盖打交道,一定要记住:“早请示,晚汇报,先申请,后使用,用后归还”,
[ 本帖最后由 路路通 于 2008-6-11 11:39 编辑 ] |