MFC(一):win32创建一个最简单的窗口

一、常规中,选择兼容xp;代码生成中,MTD;连接器-系统中,选择subsystem:windows;

// wangy1.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
	switch (uMsg)
	{
	case WM_CLOSE: 
		{
			::DestroyWindow(hWnd);
		
		}
		break;
	case WM_DESTROY:
		{
			::PostQuitMessage(NULL);
		}
		break;
	default:
		
		break;
	}
	return ::DefWindowProc(hWnd, uMsg, wParam, lParam);
}
int WINAPI _tWinMain(
	_In_ HINSTANCE hInstance,
	_In_opt_ HINSTANCE hPrevInstance, 
	_In_ LPTSTR lpCmdLine, 
	_In_ int nShowCmd) 
{
	const TCHAR *pszClassName = _T("ITWnd");
	WNDCLASSEX wce;
	wce.cbSize = sizeof(WNDCLASSEX);
	wce.cbClsExtra = 0;
	wce.cbWndExtra = 0;
	wce.style = CS_HREDRAW | CS_VREDRAW;
	wce.lpfnWndProc = WndProc;
	wce.hInstance = hInstance;
	wce.hIcon = ::LoadIcon(NULL, IDI_APPLICATION);
	wce.hIconSm = ::LoadIcon(NULL, IDI_APPLICATION);
	wce.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);
	wce.hCursor = (HCURSOR)::LoadCursor(NULL,IDC_ARROW);
	wce.lpszMenuName = NULL;
	wce.lpszClassName = pszClassName;
	BOOL bRet = ::RegisterClassEx(&wce);
	if (bRet == FALSE) {
		MessageBox(NULL,_T("窗口类注册失败"),_T("提示"),MB_OK);
		return FALSE;
	}
	HWND hWnd = ::CreateWindowEx(0,pszClassName,_T("IT学吧"),WS_VISIBLE|WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
	if (NULL == hWnd) {
		MessageBox(NULL,_T("创建窗口失败"),_T("提示"),MB_OK);
		return FALSE;
	}
	::ShowWindow(hWnd,SW_SHOW);
	::UpdateWindow(hWnd);

	MSG msg;
	while (::GetMessage(&msg,NULL,NULL,NULL)) {
		::TranslateMessage(&msg);
		::DispatchMessage(&msg);
	}
	return TRUE;
}



你可能感兴趣的:(MFC(一):win32创建一个最简单的窗口)