MFC静态编辑框如何改变字体的大小

更新时间:2023-08-11 21:50:01 阅读: 评论:0

MFC编辑框如何改变字体的大小教学相长是什么意思
方法一:
步骤一:在Dlg类中增加一个类成员变量:    CFont m_editFont;
注意:这里Font对象必须是类成员变量,不能是局部变量,否则会出现只改变了光标的大小,而不能改变字体的大小。
步骤二:在OnInitDialog方法中增加下列语句:
m_editFont.CreatePointFont(180, "宋体");
m_editPlace.SetFont(&m_editFont); // 设置新字体
方法二:
OnInitDialog方法中增加下列语句也可以实现:
    CFont* ptf=m_editPlace.GetFont(); // 得到原来的字体
    LOGFONT lf;
    ptf->GetLogFont(&lf);
    lf.lfHeight = 20; // 改变字体高度
    strcpy (lf.lfFaceName, "隶书"); // 改变字体名称
instruments    m_editFont.CreateFontIndirect(&lf);
    m_editPlace.SetFont(&m_editFont); // 设置新字体
注意:If是个新的结构体变量,GetLogFont函数是实现将ptf中的LOGFONT结构体变量拷贝给If了,所以改变If不等于是改变ptf中的LOGFONT变量。所以下面必须加这两句来创建新的字体对象
m_editFont.CreateFontIndirect(&lf);
m_editPlace.SetFont(&m_editFont); // 设置新字体
favicon
CFont  font;
LOGFONT  lf;
memt(&lf,  0,  sizeof(LOGFONT));              //  zero  out  structure
lf.lfHeight  =  12;                                            //  request  a  12-pixel-height  font
strcpy(lf.lfFaceName,  "Arial ");                //  request  a  face  name  "Arial "
VERIFY(font.CreateFontIndirect(&lf));    //  create  the  font

GetDlgItem(XXX)-> SetFont(&font);
下面的例子中,先取得编辑框本身的字体,然后改变其大小(需要注意的是,这种方法下,编辑框本身的字体如果不是TrueType型的话,字体大小的变化不是连续的,某些大小值的设定有可能不起作用):

CYourDlg中增加成员变量CFont      m_font;  //这个绝对不能使临时变量

BOOL      CYourDlg::OnInitDialog()     
{
CDialog::OnInitDialog();

//      TODO:      Add      extra      initialization      here
CWnd      *pEdit      =      GetDlgItem(IDC_EDIT1);
CFont      *pfont      =      pEdit-> GetFont();
LOGFONT      logfont;
pfont-> GetLogFont(&logfont);
logfont.lfHeight      =      -18;
m_font.CreateFontIndirect(&logfont); 饼饵
pEdit-> SetFont(&m_font);

return      TRUE;          //      return      TRUE      unless      you      t      the      focus      to      a      control
                                                        //      EXCEPTION:      OCX      Property      Pages     
should      return      FALSE
}

void      CYourDlg::OnDestroy()     
{
CDialog::OnDestroy();

//      TODO:      Add      your      message      handler      code      here
英语元音和辅音m_font.DeleteObject();
}
OnInitDialog:

CFont  *pSignNameFont;
pSignNameFont  =  new  CFont;
pSignNameFont-> CreateFont(30,20,0,0,150,
                                                            FALSE,FALSE,0,
                                                            ANSI_CHARSET,  OUT_DEFAULT_PRECIS,
                                                            CLIP_DEFAULT_PRECIS,  DEFAULT_QUALITY,
                                                            DEFAULT_PITCH  |  FF_SWISS,  "宋体  (TrueType) ");


GetDlgItem(IDC_EDIT2)-> SetFont(pSignNameFont);
LOGFONT    lf;                                                                                    //定义字体结构   
lf.lfWeight=10;                                                                    //字体磅数=10   
  lf.lfHeight=56;                            //字体高度56       
  lf.lfWidth=20;                                                                        //字体宽度20   
  lf.lfUnderline=FALSE;                                            //无下划线   
  lf.lfStrikeOut=FALSE;                                            //无删除线   
  lf.lfItalic=FALSE;                                                        //非斜体   
  lf.lfEscapement=0; magnificent
  lf.lfCharSet=DEFAULT_CHARSET;            //使用缺省字符集   
    strcpy(lf.lfFaceName, "宋体 ");    //字体名=@system   
                 
  CFont    myFont;                                                                            //定义字体对象   
  myFont.CreateFontIndirect(&lf);    //创建逻辑字体 
然后在你需要改的情况下
....-> SetFont(&myFont);
如何更改static控件的字体大小
(2010-04-26 22:21:07)
转载
苦难是一笔财富标签:
杂谈
分类:C/C++学习
你用的如果VC已有的英文是5.05.0要从光盘上拷几个dll   
如果是6.0,也许要设置一下。在"工作区"相应的对话宽点右键,属性中有"语言"项,选择"Chine(P.R.C)"就可以了。
 
更改字体,首先改变你的static控件的ID,然后GetDlgItem(IDC_YOURSTATIC)->SetFont(&font);
 
不支持汉字,可能是没有拷贝appwzchs.dll   
 [附:控件字体颜色修改相关]
很多人定义了基于MFC的程序项目,当设计界面使用控件时,却不知道如何对各控件进行字体与颜色的设计;其实这些修改是需要动手添加代码的,这方面的修改在控件属性里是没有现成的,这不同于定义的项目,它的是有直接属性修改的。
1、改变对话框的底色
在对话框的类中添加一个 private : CBrush m_brush;的成员变量。在类的构造函数中添加如下代码:
m_brush.CreateSolidBrush(RGB(0,0,255));    //初始化为蓝色
为对话框添加一个WM_CTLCOLOR消息响应函数,专门为控件着色的消息响应函数,代码如下:
HBRUSH CSettingDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
//return hbr;                       
return m_brush;                     
}
当然,.h文件里也要对函数进行预定义的;此时,该对话框的背景色已经全为蓝色了。
2、如果我们要设置某一个对话框控件的底色和文字颜色时只要将上面return m_brush;改
为:
if (pWnd->GetDlgCtrlID()==IDC_LINE_STYLE)   
{
  pDC->SetTextColor(RGB(0,255,0)); 
  //pDC->SetBkMode(TRANSPARENT); 
  pDC->SetBkColor(RGB(255,0,0)); 
  return m_brush;               
}
return hbr;           
注意如果要设置单行EDIT的文字背景色,需要使用SetBkColor设置,而SetBkMode即使为透明,文字的背景仍为系统的默认色。按钮控件好像不能实现,大家可以试试,是不是按钮真的不能实现这些颜色变化。
3、利用上面的原理,在对话框控件响应OnPaint消息时,将一个静态文本显示所设置字体
的文字。添加一个静态文本框,改名为IDC_TEXT。添加一个字体成员变量 private: CFont m_font;在对话框的构造函数中对字体进行初始化: m_font.CreatePointFont(200,"华文行楷");2return hbr;之前加入如下代码:
if (pWnd->GetDlgCtrlID()==IDC_TEXT) 
{
  pDC->SelectObject(&m_font);   
}
注意,因为OnPaint消息响应函数是在控件被绘制之前触发的,它所返回的HBRUSH画刷句柄,便携带了我们所设置的这些属性。此时,静态文本框的字体就变为你所需要的那种字体了。
4、如果要改变chronicleOK按钮的文字颜色,靠上面的方式是不行的。我们需要创建一个新的从CButton类继承的CTestBtn类,并添加一个类的DrawItem的虚函数,类与虚函数都可以用向导来定义,加入以下代码:
/
/ TODO: Add your code to draw the specified item
    UINT uStyle = DFCS_BUTTONPUSH;
>monster 歌词

本文发布于:2023-08-11 21:50:01,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1129546.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字体   控件   改变   需要   设置   颜色   文字
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图