VC++学习之建立窗口

#include <windows.h>
#include <string.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int _stdcall WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
	HWND hwnd;
	MSG	 msg;
	WNDCLASS WindowClass;
	LPCTSTR className,windowTitle;
	className="FirstNwWindow";
	windowTitle="NeuglsWorkStudio";

	if(!hPrevInstance){
		//not first run, to set the windows class
		WindowClass.style=NULL;
		WindowClass.cbClsExtra=0;
		WindowClass.cbWndExtra=0;
		WindowClass.hbrBackground=WHITE_BRUSH;
		WindowClass.hCursor=LoadCursor(hInstance,IDC_ARROW);
		WindowClass.hIcon=LoadIcon(hInstance,IDI_APPLICATION);
		WindowClass.hInstance=hInstance;
		WindowClass.lpfnWndProc=WndProc;
		WindowClass.lpszClassName=className;
		WindowClass.lpszMenuName=NULL;

		RegisterClass(&WindowClass);
	}

	// start to create the window when registed the window class
	
	hwnd=CreateWindow(className,windowTitle,WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
	ShowWindow(hwnd,nShowCmd);
	UpdateWindow(hwnd);
	
	//process the message quenue
	while(GetMessage(&msg,NULL,NULL,NULL))
		DispatchMessage(&msg);
	return msg.wParam;
}

//window message process function 
	LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
	{
		switch(msg){
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		case WM_PAINT:
			HDC hdc;
			LPCTSTR text;
			text="NeuglsWorkStudio";
			hdc=GetDC(hwnd);
			TextOut(hdc,10,10,text,strlen(text));
			break;
		default:
			return DefWindowProc(hwnd,msg,wparam,lparam);
		}
		return NULL;
	}      

呵呵,据说VC入门很难,不过看过去好像不难,呵呵!

原文地址:https://www.cnblogs.com/neugls/p/1967579.html