【2021.01.04】窗口的本质

窗口的本质

HWND

HWND是全局句柄表中的索引。

GDI 图形设备接口(Graphics Device Interface)

  1. 设备对象(HWND)。
  2. DC(设备上下文、Device Contexts)。
  3. 图形对象。
图形对象作用
画笔(Pen)影响线条,包括颜色、粗细、虚实、箭头形状等。
画刷(Brushes)影响对形状、区域等操作,如使用的颜色、是否有阴影等。
字体(FONTS)影响文字输出的字体。
位图(Bitmaps)影响位图创建、位图操作和保存等。

画线

#include <iostream>
#include <Windows.h>


int main(int argc, char* argv[])
{
	//1.设备对象 就是你要把东西画在什么地方
	//这里使用的是记事本的窗口句柄
	HWND hwnd = (HWND)0x004E07FC;

	//2.DC 设备上下文对象
	//把它看成一块内存, 画在内存中, 然后再打印到屏幕上
	//获取设备上下文对象
	HDC hdc = GetDC(hwnd);

	//3.图形对象
	//创建画笔对象 设置线条属性
	HPEN pen = CreatePen(PS_SOLID, 5, RGB(0xFF, 0x00, 0x00));

	//4.关联
	//用新的画笔替换掉默认的画笔
	SelectObject(hdc, pen);

	//5.开始画线
	//GDI32.DLL
	MoveToEx(hdc, 50, 100, NULL);    //开始位置        
	LineTo(hdc, 100, 100);           //结束位置
	
	//6.销毁对象 释放资源 注意对应关系
	DeleteObject(pen);               //使用CreatePen()就要使用DeleteObject()
	ReleaseDC(hwnd, hdc);            //使用GetDC()就要使用ReleaseDC()

	std::cin.get();

	return 0;
}

 

画矩形

#include <iostream>
#include <Windows.h>


int main(int argc, char* argv[])
{
	//1.设备对象 就是你要把东西画在什么地方
	//这里使用的是记事本的窗口句柄
	HWND hwnd = (HWND)0x004E07FC;

	//2.DC 设备上下文对象
	//把它看成一块内存, 画在内存中, 然后再打印到屏幕上
	//获取设备上下文对象
	HDC hdc = GetDC(hwnd);

	//3.图形对象
	//获取默认画刷 DC_BRUSH 可以设置颜色
	HBRUSH hbrush = (HBRUSH)GetStockObject(DC_BRUSH);

	//4.关联
	SelectObject(hdc, hbrush);

	//5.开始画矩形
	//设置画刷颜色
	SetDCBrushColor(hdc, RGB(0xFF, 0x00, 0x00));

	//画矩形
	Rectangle(hdc, 0, 0, 400, 400);
	
	//6.销毁对象 释放资源
	DeleteObject(hbrush);
	ReleaseDC(hwnd, hdc);

	std::cin.get();

	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值