1)新建一个解决方案Solu4,在Solu4添加一个win32应用程序,命名为“dian43”--》next--》勾选“空工程”。如下:
图(1)创建win32应用程序
图(2)勾选“空工程”
2)点击“dian43”-->源文件--》右击--》选择“添加”/“新建项”--》代码/C++-->命名为:di
3)在di.cpp中添加如下代码:
#include <Windows.h>
#include <tchar.h>
//声明回调函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);
//窗口类名和窗口函数
const TCHAR szWindowClass[] = L"第一个窗口";
const TCHAR szWindowTitle[] = L"主窗口标题";
//WinMain函数,入口点
int WINAPI _tWinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,
LPTSTR lpCmdLine,int nCmdSHow)
{
//注册窗口类
WNDCLASSEX wcex={0};
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.style=CS_HREDRAW|CS_VREDRAW;
wcex.lpfnWndProc=(WNDPROC)WndProc;
wcex.hInstance=hInstance;
wcex.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wcex.hCursor=LoadCursor(NULL,IDC_ARROW);
wcex.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wcex.lpszClassName=szWindowClass;
RegisterClassEx(&wcex);
//创建窗口
HWND hWnd = CreateWindow(
szWindowClass,
szWindowTitle,
WS_OVERLAPPEDWINDOW,
100,200,500,500,
HWND_DESKTOP,
NULL,
hInstance,
NULL
);
if(!hWnd) return FALSE;
//显示并更新窗口
ShowWindow(hWnd,nCmdSHow);
UpdateWindow(hWnd);
//进入消息循环
MSG msg;
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
//窗口函数,用于消息处理
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam){
int nSel=0;
switch(msg){
case WM_PAINT:
{
TCHAR* str=L"Hello World";
PAINTSTRUCT ps;
HDC hdc=BeginPaint(hWnd,&ps);
RECT r;
GetClientRect(hWnd,&r);//获取客户区的矩形框
DrawText(hdc,str,-1,&r,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hWnd,&ps);
return 0;
}
case WM_CLOSE:
nSel=MessageBox(hWnd,L"你真的要退出吗?",szWindowTitle,MB_YESNO|MB_ICONQUESTION);
if(nSel==IDYES) DestroyWindow(hWnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,msg,wParam,lParam);
}
}