简单的windows窗口创建实例
#include<windows.h>
#include<tchar.h>
LRESULT CALLBACK WndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) //消息处理函数
{
switch(umsg)
{
case WM_CLOSE:
{ ::DestroyWindow(hwnd); }
break;
case WM_DESTROY:
{ :: PostQuitMessage(0); }
return 0;
}
return DefWindowProc(hwnd,umsg,wParam,lParam); //返回默认的消息处理函数
}
int WINAPI _tWinMain(IN HINSTANCE hInstance ,IN HINSTANCE hPrevInstance ,IN LPTSTR szCmdLine ,IN int iCmdShow )
{
static TCHAR pszClassName[]=_T("IT Wnd");
//创建窗口 WNDCLASS wxce;
wxce.style = CS_HREDRAW | CS_VREDRAW ; //窗口的风格 wxce.lpfnWndProc =WndProc; //消息处理,需要消息处理函数WndProc的名字 wxce.cbClsExtra = 0 ; wxce.cbWndExtra = 0; wxce.hInstance = hInstance; //窗口的实例句柄
wxce.hIcon = (HICON)::LoadIcon(NULL,IDI_APPLICATION); //窗口的的光标
//wxce.hIconSn= (HICON)::LoadIcon(NULL,IDI_APPLICATION);
wxce.hCursor = (HCURSOR)::LoadCursor(NULL,IDC_ARROW); //鼠标指针 wxce.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH); //背景颜色 wxce.lpszMenuName = NULL; //菜单句柄,本例中没有用到菜单 wxce.lpszClassName = pszClassName; //窗口名称
//注册窗口 if(!RegisterClass(&wxce)) { ::MessageBox(NULL,_T("注册窗口失败"),pszClassName,0); return FALSE; }
//创建窗口
HWND hwnd = ::CreateWindow(pszClassName, //窗口类名
_T("IT学吧"), //窗口标题
WS_VISIBLE|WS_OVERLAPPEDWINDOW, //窗口风格,或称窗口格式
CW_USEDEFAULT, //初始x坐标,这里的初始坐标都设定为默认的
CW_USEDEFAULT, //初始Y坐标
CW_USEDEFAULT, //初始X方向尺寸,这里也设为默认的
CW_USEDEFAULT, //初始Y方向尺寸
NULL, //父窗口句柄
NULL, //窗口菜单句柄
hInstance, //程序实例句柄 NULL ); //创建参数
if(NULL==hwnd)
{
::MessageBox(NULL,_T("创建窗口失败"),pszClassName,0);
return FALSE;
}
::ShowWindow(hwnd,iCmdShow); //显示窗口
::UpdateWindow(hwnd); //更新窗口
MSG msg; while (::GetMessage(&msg,NULL,NULL,NULL))
{ ::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
return true;
}