在VS2008创建win32应用程序的步骤

1)新建一个解决方案Solu4,在Solu4添加一个win32应用程序,命名为“dian43”--》next--》勾选“空工程”。如下:

在VS2008创建win32应用程序的步骤_第1张图片

图(1)创建win32应用程序

在VS2008创建win32应用程序的步骤_第2张图片

图(2)勾选“空工程”

2)点击“dian43”-->源文件--》右击--》选择“添加”/“新建项”--》代码/C++-->命名为:di

3)在di.cpp中添加如下代码:

#include 
#include 

//声明回调函数
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);
	}
}



 

你可能感兴趣的:(VS2008,Windows,win32,vs2008)