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

运行程序

相关推荐
lcj25112 小时前
字符函数,字符串函数,内存函数
c语言·开发语言·c++·windows
吃着火锅x唱着歌2 小时前
深度探索C++对象模型 学习笔记 第三章 Data语意学(2)
c++·笔记·学习
Imxyk2 小时前
P9242 [蓝桥杯 2023 省 B] 接龙数列
c++·算法·图论
郝学胜-神的一滴2 小时前
二叉树后序遍历:从递归到非递归的优雅实现
数据结构·c++·程序人生·算法·
亚马逊云开发者2 小时前
GameLift Servers DDoS防护实战:Player Gateway + Ping Beacons延迟优化 + C++ SDK集成
c++·gateway·ddos
念恒123065 小时前
继承(下) (Inheritance)
c++
H Journey6 小时前
C++之 CMake、CMakeLists.txt、Makefile
开发语言·c++·makefile·cmake
研究点啥好呢10 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
_dindong10 小时前
cf1091div2 C.Grid Covering(数论)
c++·算法
沫璃染墨10 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++