首页 > 其他分享 >MFC 简单的绘图用法

MFC 简单的绘图用法

时间:2024-01-24 19:34:36浏览次数:26  
标签:MFC 20 SelectObject font 用法 120 绘图 bitmap pDC

▲ 效果

OnDraw 函数中:

// CMFCApplication1View 绘图
void CMFCApplication1View::OnDraw(CDC* pDC)
{
    CMFCApplication1Doc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

    /*
    a) 定义画家
    b) 定义画笔(画刷)CPen, CBrush
    c) 把画笔交给画家 CDC::SelectObject
   */
    
    CPen pen(PS_DASH, 1, RGB(255, 0, 0));
    CPen* oldPen = pDC->SelectObject(&pen);
    pDC->MoveTo(10, 10);
    pDC->LineTo(120, 10); // 画直线
    // 恢复原来的状态
    pDC->SelectObject(oldPen);

    // 画圆
    pDC->Ellipse(20, 20, 120, 120); // 参数的意思是,外接四边形的左上角点和右下角点

    // 画刷
    CBrush brush(RGB(255, 0, 0));
    pDC->SelectObject(&brush);
    pDC->Ellipse(20, 20, 120, 120);

    // 定义一个位图对象
    CBitmap bitmap;
    bitmap.LoadBitmapW(IDB_BITMAP1);// 资源的ID 加载位图
    CBrush brush2(&bitmap);
    pDC->SelectObject(&brush2);
    pDC->Ellipse(120, 20, 240, 120);

    // CFont 字体
    CFont font;
    // 1000:字体宽度   0.1 倍  TEXT("楷体"):字体风格 
    font.CreatePointFont(1000, TEXT("楷体"));
    pDC->SelectObject(&font);
    pDC->TextOutW(15, 150,TEXT("Hello World~"));
}

标签:MFC,20,SelectObject,font,用法,120,绘图,bitmap,pDC
From: https://www.cnblogs.com/huvjie/p/17985691

相关文章

  • MFC 画线
    ▲连续划线//鼠标是否按下标志点位变量private://是否按下boolm_isPress;//存点数据CPointm_myPoint;消息:BEGIN_MESSAGE_MAP(CMFCApplication1View,CView) //标准打印命令 ON_COMMAND(ID_FILE_PRINT,&CView::OnFilePrint) ON_COMMAND(ID_......
  • MFC 简单的事件测试
    View的WM_LBUTTONDOWN事件消息。voidCMFCApplication1View::OnLButtonDown(UINTnFlags,CPointpoint){CStringstr;str.Format(TEXT("x=%d,y=%d"),point.x,point.y);MessageBox(str);CView::OnLButtonDown(nFlags,point);}View......
  • [CSS]SCSS基本用法
    1.声明变量的符号$2.默认变量!default默认变量在值后面加上!default3.变量调用4.局部变量和全局变量5.嵌套 选择器嵌套、属性嵌套、伪类嵌套6.混合宏@mixin声明混合宏,@include调用混合宏 (理解:写了个方法) 不足:编译的时候会根据不同选择器分别编译,形成冗余......
  • MFC 简单的界面切换测试主窗体类似控件的方式嵌入其他窗体
    ▲类向导->MFC类创建两个子窗体。1。创建两个子窗体。2。属性设置:1)、“Style”选择“Child”;中文版“样式”选择“下层”。2)、“Border”为“None”;中文版“边框”选择“无”。3。主窗体中实例子窗体对象:声明:private:CSubForm1*m_CSubForm1;CSubForm2*m_CSu......
  • 【转载】L2Dwidget.js网页二次元看板娘的用法
    最近新建了博客,https://yellowgg.cn,许久不更新的博客园想引个流,可以关注一波嗷。发现某些blog网站左下方或者右下方出现的二次元卡通人物或萌萌阿猫,除了萌,还可以监听鼠标的行为,产生互动的现象。1.关于脚本的生成L2Dwidget.min.js的源码:https://github.com/xiazeyu/live2d-wid......
  • postman 接口测试工具常见用法
    postman不适合做压力测试工具postman接口测试工具,并不适合做压力测试,实际上即便把循环间隔设置为0,postman的请求频率依旧不高,postman是等待接口响应完成以后再发送下一个请求,所以postman是测不到并发问题的,jmeter可以做到异步请求,请求发的飞快,有并发测试要求或者需要比较强的压......
  • WHEN NOT MATCHED THEN语句在oracle中的用法
    WHENNOTMATCHEDTHEN这是一个在某些数据库系统(如Oracle)中使用的特殊子句,用于处理左连接中的"未匹配"情况。当左连接的条件不满足时,这部分的代码会执行。在这种情况下,如果O.DCSHYBH的值在L中没有匹配项,那么将插入一个NULL值或默认值。总的来说,这段代码执行了一个左连接操作,并根......
  • MFC 基于对话框的程序如何屏蔽掉 ENTER 键和 ESC 键退出的情况
    重写PreTranslateMessage(MSG*pMsg)函数。protected: HICONm_hIcon; //生成的消息映射函数 virtualBOOLOnInitDialog(); afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam); afx_msgvoidOnPaint(); afx_msgHCURSOROnQueryDragIcon();afx_msgBOOLPreTra......
  • set用法详解
    ES6中的Set是一种新的数据结构,类似于数组,用于存储有序的数据。Set没有随机访问的能力,不能通过索引来获取具体的某个元素Set中的元素具有唯一性,不允许存储相同的元素。Set本身是一个构造函数,可以用来实例化Set对象。通过add()方法可以向Set中添加元素,如果添加的元......
  • MFC OnPaint 绘制一行简单文字
    ▲绘制一行简单文字OnPaint()消息。voidCMFCApplication6Dlg::OnPaint(){CPaintDCcdc(this);/***OnPaint绘制简单文字*****/cdc.TextOutW(100,100,TEXT("你好,MFC!")); if(IsIconic()) { CPaintDCdc(this);//用于绘制的设备上下文 SendMessa......