int APIENTRY WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int nCmdShow )
{
WNDCLASS wc; //定义窗口类对象
//
// 创建窗体 //
//
wc.lpszClassName = TEXT("Client"); //为窗口类定义一个名称
wc.lpfnWndProc = MainWndProc; //窗口对应的消息处理函数
wc.style = CS_VREDRAW | CS_HREDRAW; //窗口样式(当窗口改变时刷新窗口)
wc.hInstance = hInst; //窗口对应的实例,由入口提供
wc.hIcon = LoadIcon( hInst, MAKEINTRESOURCE(IDI_MAIN) ); //加载窗口图标(在资源内定义,也可位NULL)
wc.hCursor = LoadCursor( NULL, IDC_ARROW ); //指定鼠标指针的样式
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //指定背景的颜色或图片(通过刷子)
wc.lpszMenuName = NULL; //菜单的名称
wc.cbClsExtra = 0; //保留
wc.cbWndExtra = 0; //保留
if( RegisterClass( &wc ) == 0 ) //注册窗口类,并判断是否成功
return E_FAIL;
hWnd = CreateWindow( TEXT("Client"), TEXT("Client1"), //创建窗体(窗口类名称,窗体标题名称
WS_SYSMENU | WS_MAXIMIZEBOX, 180,110, //系统菜单|最小按钮不使用,X位置,Y位置
430, 230, NULL, NULL, hInst, NULL ); //宽度,高度,父窗口句柄,指向菜单, 实例(由入口提供),指向创建参数)
if( hWnd == NULL ) //判断属否创建成功
return E_FAIL;
ShowWindow( hWnd, nCmdShow ); //显示窗体(窗体句柄,此参数由入口提供)
UpdateWindow( hWnd ); //更新窗口(发送WM_PAINT消息)
///
// 进入消息循环 //
//
while(GetMessage( &msg, NULL, 0, 0 ) ) //得到消息
{
TranslateMessage( &msg ); //翻译消息
DispatchMessage( &msg ); //处理消息
}
}
//
// 窗体消息处理函数 //
//
LRESULT CALLBACK MainWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
HDC hdc; //定义一个设备
PAINTSTRUCT ps; //定义一个PAINT结构
switch (msg)
{
case WM_PAINT: //重画窗口消息
{
hdc = BeginPaint(hWnd, &ps); //得到设备信息
HFONT hFont = CreateFont(30,0,0,0,0,0,0,0,0,0,0,0,0,"宋体"); // 定义显示的字体
SelectObject(hdc, hFont); //设置窗口字体
DeleteObject(hFont); //删除字体
//GetClientRect( hWnd, &rect ); //得到子窗体的位置矩形
SetTextColor(hdc, RGB(0, 0, 0)); //设置字体的颜色
TextOut(hdc, 100, 50, "欢迎我的程序", 12); //输出字体
SetTextColor(hdc, RGB(0, 0, 255));
TextOut(hdc, 100, 100, "我的第一个窗体", 15);
EndPaint( hWnd, &ps); //删除设备
return 0L;
}
case WM_DESTROY: //退出消息
PostQuitMessage( 0 ); //退出窗口
return 0L;
}
return DefWindowProc(hWnd, msg, wParam, lParam); //处理其他的消息
}