|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2011-5-25 17:50:27
|
显示全部楼层
HelloWorld源码注释
HANDLE hInst;//全局变量,保存进程句柄
/*============================================================================*/
/*============================================================================*/
/*============================================================================*/
//窗口过程
static LRESULT WinProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
RECT rc;
switch(msg)//消息分支处理
{
case WM_PAINT: //处理窗口客户区绘制消息
hdc=BeginPaint(hwnd); //在WM_PAINT中,使用BeginPaint获得窗口客户区DC
GetClientRect(hwnd,&rc); //获得窗口客户矩形
rc.x =0;
rc.y =0;
//在指定的矩形位置显示字符串,风格:垂直居中|水平居中|单行
DrawText(hdc,"HelloWorld",-1,&rc,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
//绘制结束
EndPaint(hwnd,hdc);
break;
////
default: //其它消息交给系统默认处理
return DefWindowProc(hwnd,msg,wParam,lParam);
}
return WM_NULL;
}
/*============================================================================*/
/*============================================================================*/
//程序入口
int WinMain(HANDLE hInstance,void *argv)
{
HWND hwnd;
MSG msg;
WNDCLASSEX wcex;
////
argv =argv; //进程参数
hInst =hInstance; //设置全局进程句柄
//初始化窗口类
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW; //窗口类风格
wcex.lpfnWndProc = (WNDPROC)WinProc; //窗口过程函数
wcex.cbClsExtra = NULL;
wcex.cbWndExtra = NULL;
wcex.hInstance = hInstance;
wcex.hIcon = NULL;
wcex.hCursor = NULL;
wcex.hbrBackground = NULL;
wcex.lpszMenuName = NULL;
wcex.lpszClassName = __Name;
wcex.hIconSm = NULL;
//在屏幕10,20处创建240x200像素的主窗口;窗口名指向__Name;该函数返回主窗口句柄
//备注:这个系统的CreateWindow比Windows多出一些功能,如果窗口风格包含了WS_NATIVECLASS,
则窗口类可以不用注_册,直接使用本地类;
hwnd =CreateWindow( &wcex,__Name,WS_OVERLAPPEDWINDOW,
10,20,240,200,
NULL,NULL,hInst,NULL);
//显示窗口
ShowWindow(hwnd,SW_SHOW);
//更新窗口
UpdateWindow(hwnd);
//进入主窗口消息循环
while(GetMessage(&msg,hwnd)) //从主窗口消息队列中获取消息,直到窗口退出(WM_QUIT)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//退出进程
return TRUE;
}
/*============================================================================*/ |
|