windows编程 第二课 windows窗口

一 窗口创建过程(7个基本步骤)

        定义WinMain函数

        定义窗口处理函数(自定义,处理消息)

        注册窗口类(向操作系统写入一些数据)

        创建窗口(内存中创建窗口)

        显示窗口(绘制窗口的图像)

        消息循环(获取/翻译/派发消息)

        消息处理(窗口过程)

二 示例代码

#include <windows.h>
#include <iostream>

// 定义窗口消息处理函数
LRESULT WINAPI WndProc(HWND hwnd, UINT msgID, WPARAM wParam, LPARAM lParam)
{
	return DefWindowProc(hwnd, msgID, wParam, lParam);
}

// windows窗口入口函数
int WINAPI WinMain(
	HINSTANCE hInstance, // 当前程序的实例句柄
	HINSTANCE hPrevInstance, // 当前程序前一个实例句柄(已经废弃了,抹油在用)
	LPSTR lpCmdLine, // 命令行参数字符串
	int nCmdShow // 窗口显示方式
)
{
	 // 注册窗口类
	WNDCLASS wc = { 0 };
	// 缓冲区
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	// 窗口属性
	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
	// 使用默认光标
	wc.hCursor = NULL; 
	// 使用默认图标
	wc.hIcon = NULL;
	// 定义窗口处理函数
	wc.lpfnWndProc = WndProc;
	// 窗口名字
	wc.lpszClassName = L"Main";
	// 无菜单
	wc.lpszMenuName = NULL;
	// 重绘标志
	wc.style = CS_HREDRAW | CS_VREDRAW;
	
	// 将以上所有赋值全部写入操作系统
	RegisterClass(&wc);

	// 在内存创建窗口
	HWND wnd = CreateWindow(L"main", L"主窗口", WS_OVERLAPPEDWINDOW,
		100,100,500,500, NULL, NULL, hInstance, NULL);

	ShowWindow(wnd, SW_SHOW);
	// refresh window
	UpdateWindow(wnd);

	// 
	MSG msg = { 0 };
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值