关于CMFCPropertyGridFontProperty的赋值问题

CMFCPropertyGridFontProperty是派生于CMFCPropertyGridProperty类的用于字体设置的类。它可以设置字体的名称、大小、粗细等各项参数。但是类并不提供用于初始化各项参数的函数。这些字体参数都保存在类成员变量m_lf中(颜色保存在单独的变量m_Color中),但是该成员为保护变量未公开。如果要操作这个变量,可以CMFCPropertyGridFontProperty类上派生一个子类,然后自定义方法来处理。

代码如下:

//派生一个子类class CDerivedPropertyGridFontProperty :public CMFCPropertyGridFontProperty
{
public:
    CDerivedPropertyGridFontProperty(const CString& strName, LOGFONT& lf, DWORD dwFontDialogFlags = CF_EFFECTS | CF_SCREENFONTS,
        LPCTSTR lpszDescr = NULL, DWORD_PTR dwData = 0, COLORREF color = (COLORREF)-1) :CMFCPropertyGridFontProperty(strName, lf, dwFontDialogFlags, lpszDescr, dwData, color) {};
      // 自定义修改字体颜色方法  void SetColor(COLORREF  clrColor)
    {
        m_Color = clrColor;
    }  //自定义修改字体名称、高度、粗细和倾斜的方法
    void SetFont(WCHAR* ftFmy,LONG ftHeight,int ftWeight,BOOL ftItalic)
    {
        lstrcpyn(m_lf.lfFaceName, ftFmy,32);
        m_lf.lfHeight = -MulDiv(ftHeight, GetDeviceCaps(GetDC(NULL), LOGPIXELSY), 72);;
        m_lf.lfWeight = ftWeight;
        m_lf.lfItalic = ftItalic;
    }
};
时间: 2024-10-15 04:39:50

关于CMFCPropertyGridFontProperty的赋值问题的相关文章

es6学习 -- 解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前,为变量赋值,只能直接指定值. let a = 1; let b = 2; let c = 3; ES6 允许写成下面这样. let [a, b, c] = [1, 2, 3]; 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值. 本质上,这种写法属于"模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值.下面是一些使用嵌套数组进行解构的例子. 我认为

关于makefile中变量的多次赋值以及override指令

1 基本原则如下 1.1 原则1 变量的普通赋值是有先后顺序的,后面的赋值会覆盖掉前面的赋值. 1.2 原则2 使用的时候,用的是其前面最后的赋值,就算其后面有使用了override指令的赋值也不会影响这条原则. 1.3 原则3 当使用了override指令定义赋值了变量后,其后对该变量的所有的赋值都是无效的.但是override之前的所有的赋值都是有效的.使用的时候是往前最近原则. 2 override变量.命令行参数和普通变量之间的屏蔽关系 override变量会屏蔽命令行参数,除非用+=:

OpenCV中对Mat的遍历访问与赋值

一.访问 对于Mat的访问有两种方式 第一种,利用Mat::at进行访问 //读取3通道彩色图像 Mat img = imread("图片地址"); int px; //读取图像中第一行第一列,Blue通道数据 int px = img.at<Vec3b>(0, 0)[0]; 第二种,利用Mat的成员ptr指针进行访问 //读取3通道彩色图像 Mat img = imread("图片地址"); //将Mat中的第一行地址赋予pxVec uchar* px

Test_赋值多个class选择器

ZC: 元素属性"class"中,可以赋值 多个 class选择器 ZC: 多个选择器,相同的属性设置,哪个起作用:晚定义的起作用 1.代码 <!--内联 HTML5--> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style type="text/css"> .bgc01 { width :500px; he

mysql创建用户和创建数据库赋值用户操作权限

mysql 进入mysqldb SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; 查询所有用户 CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie'; 创建一个用户可以访问所有数据库(%表示)密码是oozie GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%' IDENTIFIED BY 'oozie' W

深浅拷贝,赋值

python中关于对象复制有三种类型的使用方式,赋值.浅拷贝与深拷贝.他们既有区别又有联系,刚好最近碰到这一类的问题,研究下. 一.赋值 在python中,对象的赋值就是简单的对象引用,这点和C++不同.如下: list_a = [1,2,3,"hello",["python","C++"]] list_b = list_a 这种情况下,list_b和list_a是一样的,他们指向同一片内存,list_b不过是list_a的别名,是引用. 我们可

构造函数、拷贝构造函数、赋值操作符

对于这样一种类与类之间的关系,我们希望为其编写“深拷贝”.两个类的定义如下: class Point { int x; int y; }; class Polygon : public Shape { Point *points; }; 1. 构造函数 //构造函数 Polygon(const Point &p) : _point(new Point) { this->_point->x = p.x; this->_point->y = p.y; } 2. 拷贝构造函数 /

5.10 String的特点一旦被赋值就不能改变

/*  * 字符串的特点:一旦被赋值,就不能改变.  */ public class StringDemo { public static void main(String[] args) { String s = "hello"; s += "world"; System.out.println("s:" + s); // helloworld } }

赋值运算 += -= *= /= %= .=

1 <?php 2 $a=10; 3 4 $a+=10;//$a=$a+10,a加10之后再赋值给a 5 6 $a-=10;//$a=$a-10,a减10之后再赋值给a 7 8 $a*=10; 9 10 $a/=10; 11 12 $a%=10; 13 14 $a.="abc"; 15 16 echo $a; 17 18 19 20 ?>