mfc在OnPaint()函数中自绘简单图形实例

在对话框实现文件中OnPaint()函数中添加代码

cpp 复制代码
void CMyDialog::OnPaint()
{
    CPaintDC dc(this); // 设备上下文用于绘制
    
    // 调用基类的OnPaint(如果需要)
    // CDialog::OnPaint();
    
    // 创建红色画笔
    CPen redPen;
    redPen.CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
    CPen* pOldPen = dc.SelectObject(&redPen);
    
    // 创建红色画刷(填充矩形内部)
    CBrush redBrush;
    redBrush.CreateSolidBrush(RGB(255, 0, 0));
    CBrush* pOldBrush = dc.SelectObject(&redBrush);
    
    // 定义矩形的位置和大小
    // 例如:在对话框客户区(100,100)位置绘制50x50的红色矩形
    CRect rect(100, 100, 150, 150);
   //在Windows图形坐标系中,原点(0,0)通常位于客户区的左上角,x轴向右为正,y轴向下为正。
   // 第一个参数(100):矩形左边界的x坐标。
   // 第二个参数(100):矩形上边界的y坐标。
    //第三个参数(150):矩形右边界的x坐标。
    // 第四个参数(150):矩形下边界的y坐标。
    // 绘制矩形(填充)
    dc.Rectangle(rect);
    
    // 或者只绘制边框(不填充内部)
    // dc.SelectStockObject(NULL_BRUSH); // 空画刷
    // dc.Rectangle(rect);
    
    // 恢复原来的画笔和画刷
    dc.SelectObject(pOldPen);
    dc.SelectObject(pOldBrush);
}

运行程序

相关推荐
学涯乐码堂主2 分钟前
有趣的“打擂台算法”
c++·算法·青少年编程·gesp
云栖梦泽1 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
Gary Studio1 小时前
安卓HAL C++基础-智能指针
开发语言·c++
还是阿落呀1 小时前
基本控制结构2
c++
多思考少编码2 小时前
PAT甲级真题1001 - 1005题详细题解(C++)(个人题解)
c++·python·最短路·pat·算法竞赛
极客智造3 小时前
C++ 标准 IO 流全详解:cin /cout/get /getline 原理、用法、区别与避坑
c++·io
charlie1145141913 小时前
嵌入式C++工程实践第20篇:GPIO 输入模式内部电路 —— 芯片是如何“听“到外部信号的
开发语言·c++·stm32·单片机
样例过了就是过了5 小时前
LeetCode热题100 分割等和子集
数据结构·c++·算法·leetcode·动态规划
麦兜和小可的舅舅6 小时前
ClickHouse 列管理机制解析:从 COW、IColumn 到 CRTP
c++·clickhouse
旖-旎6 小时前
深搜练习(组合)(5)
c++·算法·深度优先·力扣