一.windows窗口创建
建立一个windows窗口四部曲
1.设置窗口
2.注册窗口
3.创建窗口
4.显示窗口
/*
time: 2014.10.20
topic: windows窗口(1)
point:窗口设计,注册,创建,显示,更新。
*/
#include<windows.h>
//窗口过程函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
//winmain函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
//1.设计窗口
WNDCLASSEX wndClass = {
sizeof(WNDCLASSEX),
CS_HREDRAW | CS_VREDRAW,
WndProc,
0L,
0L,
hInstance,
NULL,
LoadCursor(NULL, IDC_ARROW),
(HBRUSH)GetStockObject(GRAY_BRUSH),
NULL,
L"hello windows",
NULL
};
//2.注册窗口
RegisterClassEx(&wndClass);
//3.创建窗口
HWND hWnd = CreateWindow(L"hello windows", L"hello windows", WS_EX_OVERLAPPEDWINDOW, 0, 0, 400, 400, NULL, NULL, hInstance, NULL);
//调整设定位置大小函数
MoveWindow(hWnd, 100, 100, 800, 600, true);
//4.显示窗口
ShowWindow(hWnd, nCmdShow);
//更新窗口
UpdateWindow(hWnd);
return 0;
}
其实都是一些固定的格式,只需要按照自己的需要更改一下参数,就可以创建一个自己想要的窗口。详细的参数信息还是查阅MSDN这个神器吧!
二.消息循环
windows是事件驱动的,作为一个实时的操作系统,当然是有任何事件都要做出相应,当有消息来时,那就得把这消息放到消息队列中,队列是一个循环缓冲区,当一个程序装入内存后,Windows操作系统为每个线程分配一个消息队列。每个程序必须通过向消息队列发送消息,系统决定是否马上响应这些请求的消息,并通过回调窗口函数来完成窗口中的某些功能。
关于消息,有这样的一个结构体