//------------------------------------------------------------------- //********************* 华奇英多功能编辑器主文件*********************** //文件名:Heditor.cpp //------------------------------------------------------------------- //包含文件 #include <windows.h> //在Win32程序中必须包含 #include "Heditor.h" //全局变量 HINSTANCE H_Instance; //保存当前实例句柄的变量,供以后使用 //函数 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) { MSG cu_Msg; //消息结构
if(H_RegWindowsClass(hInstance)) //注册新的窗口类型 { //如果注册成功 H_Instance=hInstance; //保存当前实例句柄 H_InitWindow(hInstance,nShowCmd); //建立窗口并显示
while(GetMessage(&cu_Msg,NULL,0,0)) //开始消息循环 { TranslateMessage(&cu_Msg); //翻译字符消息 DispatchMessage(&cu_Msg); //分配信息 } return(cu_Msg.wParam); }
return(0); }
bool H_RegWindowsClass(HINSTANCE hInstance) //注册视窗类型 { WNDCLASS wc; //定义类注册结构
wc.style=CS_OWNDC|CS_HREDRAW|CS_VREDRAW; //定义类风格 wc.lpfnWndProc=H_WndProc; //窗口过程回调函数 wc.hInstance=hInstance; //实例句柄 wc.cbClsExtra=0; wc.cbWndExtra=0; wc.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口图标 wc.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口光标 wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); //窗口背景刷 wc.lpszMenuName=NULL; //窗口菜单名 wc.lpszClassName="webmain_Class"; //定义类名
if(RegisterClass(&wc)) //注册窗口类 return true; //成功,返回真 return false; //失败,返回假 }
bool H_InitWindow( //窗口初始化函数 HINSTANCE hInstance, //当前窗口实例句柄 int nShowCmd //显示窗口的方式 ) { HWND cu_hWnd; //窗口句柄
cu_hWnd=CreateWindow("webmain_Class", //类名 "一个空白窗口", //窗口名称 WS_OVERLAPPEDWINDOW, //窗口风格 0,0, //窗口的左上角坐标 500,400, //窗口的宽与高 NULL, //窗口的父句柄或所有者句柄 NULL, //窗口的菜单句柄 hInstance, //实例句柄 NULL //一般为NULL,在以后的多文档窗口的建立中会讨论 ); //新建窗口 if(!cu_hWnd) { //如果建立窗口失败 return(false); }
ShowWindow(cu_hWnd,nShowCmd); //显示窗口 UpdateWindow(cu_hWnd); //更新窗口 return(true); }
LRESULT CALLBACK H_WndProc( //窗口处理函数 HWND hwnd, //当前窗口的句柄 UINT uMsg, //消息标识符 WPARAM wParam, //消息的第一个附加参数 LPARAM lParam //消息的第二个附加参数 ) { switch(uMsg) { case WM_DESTROY: PostQuitMessage(0); //结束程序 break; default: return DefWindowProc(hwnd, uMsg, wParam, lParam); //调用默认窗口过程 } return(0); } |