#include "tchar.h"
#include <windows.h>
//回调函数
LRESULT CALLBACK winproc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg)
{
case WM_CLOSE:
{
::DestroyWindow(hWnd);
}
break;
case WM_DESTROY:
{
PostQuitMessage(NULL);
}break;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
int WINAPI _tWinMain(
//#ifdef _UNICODE
//#define _tWinMain wWinMain
//#else
//#define _tWinMAin WinMain
_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine,
_In_ int nShowCmd)
{
WNDCLASSEX wcex;
//设计窗口
wcex.cbSize = sizeof(WNDCLASSEX); //窗口的大小
wcex.style = CS_HREDRAW | CS_VREDRAW | CS_BYTEALIGNCLIENT; //窗口的风格
wcex.lpfnWndProc = winproc; //消息处理函数,窗口处理指针
wcex.cbClsExtra = 0; //窗口类结构后的附加字节数
wcex.cbWndExtra = 0; //窗口事例后的附加字数
wcex.hInstance = hInstance; //实例句柄
wcex.hIcon = ::LoadIcon(NULL, MAKEINTRESOURCE(IDI_QUESTION)); //图标的句柄 makeintresouce数字形ID",转化为"字符串
wcex.hCursor = ::LoadCursor(NULL, MAKEINTRESOURCE(IDC_HAND)); //光标的句柄
//wcex.hCursor = LoadCursor(NULL, IDC_ARROW); //光标的句柄
wcex.hbrBackground = (HBRUSH)(COLOR_CAPTIONTEXT); //背景画刷的句柄
wcex.lpszMenuName = NULL; //指向菜单的指针
wcex.lpszClassName = _T("name"); //类别名称的指针
wcex.hIconSm = ::LoadIcon(NULL, IDI_APPLICATION); //窗口类关联的小图标
//2.注册窗口
BOOL bret = ::RegisterClassEx(&wcex);//窗口对象的地址
if (!bret)
{
MessageBox(NULL,_T("注册失败"),_T("注册窗口"),0);//MB_OK
}
//3创建窗口
HWND hWnd = ::CreateWindowEx(0, wcex.lpszClassName,
_T("窗口"), WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);//扩展窗口风格,窗口类名,窗口名,窗口风格,
//4显示更新窗口
::ShowWindow(hWnd, SW_SHOW);
::UpdateWindow(hWnd);
//5消息循环
MSG msg;
while (::GetMessage(&msg,hWnd,NULL,NULL))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);//派遣消息
}
return 0;
}