您的位置:首页 > 其它

win32 简单窗口的创建及参数介绍

2009-09-15 18:15 731 查看
Win32 API应用
int WNDAPI(_stdcll) WinMain( //程序入口函数,有操作系统调用。
HINSTANCE hInstance 实例句柄(exe或dll)
HINSTANCE hPrevIstance 兄弟实例句柄
LPSTR lpCmdLine 命令行参数
int nCmdShow 显示的状态(最大化、最小化)


数据类型
UINT unsigned int
LPSTR  char* LP long pointer
LPCSTR 表示一个指向不会也不能被修改的常量字符串指针
NULL 指向0的指针并非整数0

一、注册窗口类

WNDCLASSEX 结构体及各成员的意义
{
UINT cbSize; 结构体的大小
UINT style; 类的式样(CS_*),不要跟窗口式样(WS_*)混淆了。这个一般设为0
WNDPROC lpfnWndProc; 指向这个窗口类的窗口过程的指针(回调函数,用来说明产生各种消息所应产生的结果,有操作系统调用)
int cbClsExtra; 配置给这个类的额外内存,一般为0.
int cbWndExtra; 配置给这个类的每个窗口的额外内存,一般为0
HANDLE hInstance; 应用程序实例的句柄(从WinMain()第一个参数传递来)
HICON hIcon; 当用户按下Alt+Tab组合时候显示的大图标(一般为32*32)
HCURSOR hCursor; 在我们窗口上显示的光标。
HBRUSH hbrBackground; 设置我们窗口背景颜色的背景刷子
LPCTSTR lpszMenuName; 这个类的窗口所用的菜单资源的名字
LPCTSTR lpszClassName; 类的名字
HICON hIconSm; 在任务栏和窗口的左上角显示的小图标(一般为16*16)
} WNDCLASSEX;
RegisterClassEx()注册窗口

二、创建窗口

HWND CreateWindowEx(
DWORD dwExStyle, // 扩展的窗口式样
LPCTSTR lpClassName, // 类的名字
LPCTSTR lpWindowName, // windows窗口名
DWORD dwStyle, // 窗口式样参数
int x, // 左上角x坐标
int y, // 左上角y坐标
int nWidth, // window width
int nHeight, // window height
HWND hWndParent, // 父窗口的句柄
HMENU hMenu, // 菜单句柄
HINSTANCE hInstance, //应用程序实例句柄
LPVOID lpParam // 窗口穿件实例的指针
);
ShowWindow(hwnd,ncmdShow)显示窗口
UpdateWindow(hwnd)重画窗口

三,消息循环

while(BOOL GetMessage(
LPMSG lpMsg, // address of structure with message
HWND hWnd, // handle of window
UINT wMsgFilterMin, // first message
UINT wMsgFilterMax // last message
)
{
TranslateMessage(&msg); 将WM_KEYDOWN,WM_KEYUP消息转换为WM_CHAR消息
DispatchMessage(&msg); 将消息送到消息应该被送到的窗口,有操作系统调用。
}

四,窗口过程(回调函数)

LRESULT CALLBACK WndProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
DestoryWindow()销毁窗口,发送WM_DESTORY消息,系统移除我们的窗口之前删除它剩下的所有的子窗口
PostQuitMessage()发送WM_QUIT 消息终止程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: