首页 > 其他分享 >MFC-SelectObject新对象替换相同类型的对象

MFC-SelectObject新对象替换相同类型的对象

时间:2023-04-16 16:22:59浏览次数:42  
标签:lf MFC 对象 SelectObject 选择对象 hdc 句柄

 

    
    HDC hdc = ::GetDC(m_hWnd);
    LOGFONT lf = { 0 };
    lf.lfWeight = 16; //平均宽度
    lf.lfHeight = 40;//字体高度
    lf.lfCharSet = GB2312_CHARSET;
    HFONT hfont = ::CreateFontIndirect(&lf);
    HFONT holdfont= (HFONT)SelectObject(hdc, hfont);//新对象替换相同类型的对象
    /*
    参数1:HDC hdc  DC句柄
    参数2:HGDIOBJ hgdiobj 新对象
            但该对象的句柄必须使用以下函数创建才有效:
            Bitmap(位图)          CreateBitmap, CreateBitmapIndirect, 
                                  CreateCompatibleBitmap, CreateDIBitmap, 
                                  CreateDIBSection
            Brush(画刷)           CreateBrushIndirect, eateDIBPatternBrush,  
                                  CreateDIBPatternBrushPt, CreateHatchBrush,  
                                  CreatePatternBrush, CreateSolidBrush 
            Font(字体)              CreateFont, CreateFontIndirect
            Pen(画笔)               CreatePen, CreatePenIndirect
            Region(区域)             CombineRgn, CreateEllipticRgn, 
                               CreateEllipticRgnIndirect, 
                               CreatePolygonRgn, CreateRectRgn, 
                               CreateRectRgnIndirect
    
    返回值:HGDIOBJ  如果选择对象不是区域并且函数执行成功,那么返回值是被取代的对象的句柄
                    如果选择对象是区域并且函数执行成功,返回如下一值
                    如果发生错误并且选择对象不是一个区域,那么返回值为NULL,否则返回HGDI_ERROR
                    
    */

    
    RECT rect = { 50,50,400,400 };
    int n=DrawText(hdc,_T("GDI测试"),-1,&rect,DT_LEFT);
    
    SelectObject(hdc, holdfont);
    BOOL b=DeleteObject(hfont);  //删除对象

 

 

 

 

 

 

标签:lf,MFC,对象,SelectObject,选择对象,hdc,句柄
From: https://www.cnblogs.com/liming19680104/p/17323469.html

相关文章

  • MFC-DrawText在指定的矩形里写入格式化的文本
     HDChdc=::GetDC(m_hWnd);LOGFONTlf={0};lf.lfWeight=16;//平均宽度lf.lfHeight=40;//字体高度lf.lfCharSet=GB2312_CHARSET;HFONThfont=::CreateFontIndirect(&lf);HFONTholdfont=(HFONT)SelectObject(hdc,hfon......
  • 2023年春面向对象第二单元
    23年春面向对象第二单元分析与总结目录概述JVM基础  JVM简介  JVM内存结构  java类的加载机制  JVM结构与多线程的关联架构  电梯  调度器  类图分析  对任务要求的回答bug分析总结概述  OO第二单元主要围绕着java多线程编程展开。在理论部分,课......
  • Java面向对象编程中级
    IDEA常用快捷键删除当前行,默认是ctrl+Y自己配置ctrl+d复制当前行,自己配置ctrl+alt+向下光标补全代码alt+/添加注释和取消注释ctrl+/导入该行需要的类先配置autoimport,然后使用alt+enter即可快速格式化代码ctrl+alt+L快速运行程序自己定义alt+......
  • MFC-HFONT字体
    GDI中默认的字体,是系统等宽字体,比如对话框标题一般就采用这个字体。        ......
  • MFC-PtInRect判断一个点是否在矩形中
     HDChdc=::GetDC(m_hWnd);RECTrect={10,10,100,100};POINTpoint={50,50};BOOLb=PtInRect(&rect,point);//判断一个点是否在矩形中/*参数1:RECT*lprc参数2:POINT返回值:如果点在rect对象中,那么返回值为非零,......
  • MFC-IntersectRect获得两个矩形的交集部分
     HDChdc=::GetDC(m_hWnd);RECTrect={10,10,100,100};RECTrect1={50,50,150,150};RECTrect2;HBRUSHhbr;hbr=CreateSolidBrush(RGB(0,0,255));SelectObject(hdc,hbr);intf=FrameRect(hdc,&rect,hbr);......
  • MFC-UnionRect获得两个矩形的并集部分
     HDChdc=::GetDC(m_hWnd);RECTrect={10,10,100,100};RECTrect1={50,50,150,150};RECTrect2;HBRUSHhbr;hbr=CreateSolidBrush(RGB(0,0,255));SelectObject(hdc,hbr);intf=FrameRect(hdc,&rect,hbr)......
  • MFC-IsRectEmpty判断一个矩形是否为空矩形
     HDChdc=::GetDC(m_hWnd);RECTrect={10,10,100,100};BOOLb=IsRectEmpty(&rect);//返回值:如果矩形为空,则返回值为非零。如果矩形不为空,则返回值为零CStringstr;str.Format(_T("b=%d"),b);::OutputDebugString(str);  ......
  • 面向对象编程 -- 创建对象3
    面向对象编程 --创建对象3一、对象迭代//ECMAScript2017新增了两个静态方法,用于将对象内容转换为序列化的--更重要的是可迭代--格式//这两个静态方法Object.values()和Object.entries()接收一个对象,返回它们内容的数组。consto={ foo:'bar', baz:1, qux......
  • Scanner对象
    流程控制scanner对象通过Scanner类来获取用户的输入Scanners=new(System.in);//基本语法通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。importjava.util.Scanner;publiccl......