废话不说,直接贴代码,相信必有用!
#include "windows.h"
#include "TCHAR.h"
//声明自定义消息处理函数
LRESULT CALLBACK WindowProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int _tmain(int argc, _TCHAR* argv[])
{
HINSTANCE hInstance;
hInstance=GetModuleHandle(NULL); //获取一个应用程序或动态链接库的模块句柄
WNDCLASS Render_WND;
Render_WND.cbClsExtra = 0;
Render_WND.cbWndExtra = 0;
Render_WND.hCursor = LoadCursor(hInstance, IDC_ARROW); //鼠标风格
Render_WND.hIcon = LoadIcon(hInstance, IDI_APPLICATION); //图标风格
Render_WND.lpszMenuName = NULL; //菜单名
Render_WND.style = CS_HREDRAW | CS_VREDRAW; //窗口的风格
Render_WND.hbrBackground = (HBRUSH)COLOR_WINDOW; //背景色
Render_WND.lpfnWndProc = WindowProc; //【关键】采用自定义消息处理函数,也可以用默认的DefWindowProc
Render_WND.lpszClassName = _T("RenderWindow"); //【关键】该窗口类的名称
Render_WND.hInstance = hInstance; //【关键】表示创建该窗口的程序的运行实体代号
RegisterClass(&Render_WND);
HWND hwnd = CreateWindow(
_T("RenderWindow"), //【关键】上面注册的类名lpszClassName,要完全一致
L"Zombie", //窗口标题文字
WS_OVERLAPPEDWINDOW, //窗口外观样式
0, //窗口相对于父级的X坐标
0, //窗口相对于父级的Y坐标
320, //窗口的宽度
240, //窗口的高度
NULL, //没有父窗口,为NULL
NULL, //没有菜单,为NULL
hInstance, //当前应用程序的实例句柄
NULL); //没有附加数据,为NULL
// 显示窗口
ShowWindow(hwnd, SW_SHOW);
// 更新窗口
UpdateWindow(hwnd);
// 消息循环
MSG msg;
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
// 自定义消息处理函数的实现
LRESULT CALLBACK WindowProc(
_In_ HWND hwnd,
_In_ UINT uMsg,
_In_ WPARAM wParam,
_In_ LPARAM lParam
)
{
switch(uMsg)
{
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
阅读(4040) | 评论(0) | 转发(0) |