Windows编程学习之路--框架介绍

来源:互联网 发布:手机棋牌源码 编辑:程序博客网 时间:2024/06/14 21:59
一个Windows 的应用程序,要创建一个窗口我觉得可以分为6个步骤:
1. 创建窗口类
2. 注册窗口类
3. 建立窗口
4. 显示窗口
5. 更新窗口
6. 获取消息
下面我就对以上这些步骤做些简单的说明。
创建窗口类。其实这一步,就是声明一个WNDCLASS这个结构体,这个结构体里边包含了窗口的一些信息。如窗口样式,菜单,图标等信息,然后将这些成员一一进行赋值。
注册窗口类。这一步是调用RegisterClass这个API,将上面创建的窗口类进行注册。
建立窗口。这一步将调用一个CreateWindow这个API,来创建一个窗口出来,但并没有显示出来。
显示窗口。调用ShowWindow这个API,将创建出来的窗口显示出来。
更新窗口。调用UpdateWindow这个API,更新一下显示出来的窗口。
获取消息。整个Windows应用程序是以消息驱动的,此时要调用GetMessage,从消息队列里获取一个消息,进行分发给窗口。
下面是以上的一些代码:

int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd)
{
 TCHAR szAppClassName[] = L"MyFirstWindow";
 HWND hWnd;  
 MSG msg; 
 //创建窗口类
 WNDCLASS wndclass; 
 //窗口类对象的初始化
 wndclass.style = CS_HREDRAW | CS_VREDRAW;
 wndclass.lpfnWndProc = WndProc;
 wndclass.cbClsExtra = 0;  
 wndclass.cbWndExtra = 0;
 wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 
 wndclass.lpszMenuName = NULL;
 wndclass.lpszClassName = szAppClassName;
 wndclass.hInstance = hInstance;
 wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
 wndclass.hCursor = LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CURSOR1));
 //注册窗口类
 if (!RegisterClass(&wndclass))
 {
  MessageBox(NULL, L"Register wnd class failed", L"Error", MB_OK);
  return 0;
 }
 //建立窗口
 hWnd = CreateWindow(szAppClassName,
  L"My first win32 application",
  WS_OVERLAPPEDWINDOW,   
  800,     
  500,     
  600,     
  400,     
  NULL,       
  NULL,       
  hInstance,     
  NULL      
  );
 //显示窗口
 ShowWindow(hWnd, SW_SHOW);
 //更新窗口
 UpdateWindow(hWnd);
 // 获取消息
 while (GetMessage(&msg,NULL,0,0))
 {
  TranslateMessage(&msg);//主要将一些虚拟键值转为一些字符消息,再传递给windows
  DispatchMessage(&msg);//将消息发送给CreateWindow建立 的窗口
 }
}

0 0
原创粉丝点击