winAPI窗口程序流程

1、定义入口函数WinMain()

2、创建一个窗口

     1)设置窗口类WNDCLASS(给成员变量赋值)

     2) 注册窗口类

     3) 创建窗口类

     4)显示和更新窗口

3、消息循环

4、窗口过程函数

 

 

代码

#include <windows.h>

//窗口过程函数
LRESULT CALLBACK WindowProc(
	_In_ HWND   hwnd,
	_In_ UINT   uMsg,
	_In_ WPARAM wParam,
	_In_ LPARAM lParam
	)
{
	switch (uMsg)
	{
	case WM_LBUTTONDOWN:	//鼠标左键按下
		MessageBox(hwnd, TEXT("鼠标按下啦"), TEXT("WINAPI窗口"), MB_OK);
		break;
	case WM_PAINT:
	{
		PAINTSTRUCT ps;
		HDC hDC = BeginPaint(hwnd, &ps);
		TCHAR* szText = TEXT("哈哈,我画出来啦!");
		TextOutW(hDC, 30, 30, szText, wcslen(szText));
		EndPaint(hwnd, &ps);
	}
		break;
	case WM_DESTROY:
		PostQuitMessage(2); //WM_QUIT, 给主函数 msg.wParam
		break;
	default:
		return DefWindowProc(hwnd, uMsg, wParam, lParam);
	}
	return 0;
}

int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd)
{
	/*
	1、定义入口函数WinMain()
	2、创建一个窗口
		1)设置窗口类WNDCLASS(给成员变量赋值)
		2) 注册窗口类
		3) 创建窗口类
		4)显示和更新窗口
	3、消息循环
	4、窗口过程函数
	*/
	WNDCLASS wc;
	wc.cbClsExtra = 0;		//类的附加信息
	wc.cbWndExtra = 0;		//窗口的附加信息
	//GetStockObject() 获取系统默认的画刷
	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);	//*背景色
	wc.hCursor = 0;			//使用默认
	wc.hCursor = LoadCursor(NULL, IDC_HELP);	//加载系统默认光标
	wc.hIcon = LoadIcon(NULL, IDI_WARNING);		//加载系统默认图标
	wc.hInstance = hInstance;					//应用程序的应用实例
	wc.lpfnWndProc = WindowProc;				//窗口过程函数
	wc.lpszClassName = TEXT("中文");			//类名
	wc.lpszMenuName = NULL;						//菜单名字,没用
	wc.style = nShowCmd;						//显示风格

	//注册窗口类
	RegisterClass(&wc);
	
	//创建窗口类
	HWND hWnd = CreateWindow(TEXT("中文"), TEXT("我创建的WINAPI窗体"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
		NULL, NULL, hInstance, NULL);

	//显示窗口
	ShowWindow(hWnd, SW_SHOWNORMAL);
	
	//更新窗口
	UpdateWindow(hWnd);

	//消息循环
	MSG msg;
	//如果消息为WM_QUIT,返回0,退出
	//如果出错,返回-1,不退出
	while (GetMessage(&msg, NULL,0,0))
	{
		//虚拟按键转换为标准字符WM_CHAR
		TranslateMessage(&msg);

		//给操作系统分发消息
		DispatchMessage(&msg);
	}
	
	return msg.wParam;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值