前面我们演示了带界面的Windows程序,但那仅仅是一个弹窗,调用MessageBox函数就可以实现,不是一个真正意义上的窗口。我们通常所说的窗口包含最大化、最小化、关闭按钮,也包含菜单、单选框、图像等各种控件。
一个完整的Windows程序框架:
一个完整的Windows程序框架:
- #include <windows.h>
- LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
- int WINAPI WinMain(
- HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- PSTR szCmdLine,
- int iCmdShow
- ){
- static TCHAR szClassName[] = TEXT("HelloWin"); //窗口类名
- HWND hwnd; //窗口句柄
- MSG msg; //消息
- WNDCLASS wndclass; //窗口类
- /**********第①步:注册窗口类**********/
- //为窗口类的各个字段赋值
- wndclass.style = CS_HREDRAW | CS_VREDRAW; //窗口风格
- wndclass.lpfnWndProc = WndProc; //窗口过程
- wndclass.cbClsExtra = 0; //暂时不需要理解
- wndclass.cbWndExtra = 0; //暂时不需要理解
- wndclass.hInstance = hInstance; //当前窗口句柄
- wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); //窗口图标
- wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); //鼠标样式
- wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH); //窗口背景画刷
- wndclass.lpszMenuName = NULL ; //窗口菜单
- wndclass.lpszClassName= szClassName; //窗口类名
- //注册窗口
- RegisterClass(&wndclass);
- /*****第②步:创建窗口(并让窗口显示出来)*****/
- hwnd = CreateWindow(
- szClassName, //窗口类的名字