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);
}

运行程序

相关推荐
郝学胜_神的一滴13 小时前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
见过夏天1 天前
C++ 基础入门完全指南
c++
用户805533698033 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
BadBadBad__AK3 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境4 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境4 天前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴5 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
卷无止境7 天前
C++ 的Eigen 库全解析
c++
卷无止境7 天前
现代 C++特性大盘点:一门脱胎换骨的老语言
c++·后端
郝学胜_神的一滴7 天前
CMake 27:缓存变量的特性、语法、类型与实操全解
c++·cmake