VC中动态改变控件和对话框字体(大小)_百度文库_第1页
VC中动态改变控件和对话框字体(大小)_百度文库_第2页
VC中动态改变控件和对话框字体(大小)_百度文库_第3页
VC中动态改变控件和对话框字体(大小)_百度文库_第4页
VC中动态改变控件和对话框字体(大小)_百度文库_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 VC的对话框字体设置对所有控件都有效,你不能单独地改变某个静态文本的字体。对于你的问题,需要首先用CreateFont来建立一个字体对象,然后调用控件的SetFont,就可以了。     例子:     1、改静态文体的ID,如:IDC_STATIC1     2、添加一个Edit控件,建立一个关联的控件m_editControl。     3、在OnInitDialog中添加如下代码: CFont * f;&#

2、160;     f = new CFont;      f->CreateFont(16, / nHeight      0, / nWidth      0, / nEscapement      0,

3、0;/ nOrientation      FW_BOLD, / nWeight      TRUE, / bItalic      FALSE, / bUnderline      0, / cStrikeOut    

4、0; ANSI_CHARSET, / nCharSet      OUT_DEFAULT_PRECIS, / nOutPrecision      CLIP_DEFAULT_PRECIS, / nClipPrecision      DEFAULT_QUALITY, / nQuality   

5、60;  DEFAULT_PITCH | FF_SWISS, / nPitchAndFamily      _T("Arial" / lpszFac         GetDlgItem(IDC_STATIC1->SetFont(f; 需要注意的是,这里我们使用的是CFont指针,而不是普通的CFont局部变量, 在非MF

6、C程序,首先用CreateFont来建立一个字体句柄,然后再用SendMessage发给控件WM_SETFONT消息,将建立的字体句柄赋值过去,就可以了。实例下载:http:/www.china- 2 但是整个对话框或窗口的字体的大小,使用对话框或窗口的SetFont(函数却没有任何的作用.可以在初始化时遍历每个控件分别设置来处理,但这里说另一种使用回调函数的简单方法:   :调用系统的API:EnumChildWindows(. ,传入回调函数和重新定义的字体.(第一个参数不用管啊,本来就有啊   1在文档视图结构中CMainFrame:On

7、Create(.中调用:EnumChildWindows(. 实现所有窗口和子窗口字体改变   2 在对话框的OnInitDialog(. 中调用:EnumChildWindows(. 改变对话窗上的所有控件.回调函数如下:/ lParam is a pointer to CFont objectBOOL _stdcall SetChildFont(HWND hwnd, LPARAM lparam  CFont *p

8、Font = (CFont*lparam;  CWnd *pWnd = CWnd:FromHandle(hwnd;  pWnd->SetFont(pFont;  return TRUE; 使用1:BOOL CAboutDlg:OnInitDialog(     CDialog:OnInitDialog(;        /

9、 TODO: Add extra initialization here  :EnumChildWindows(m_hWnd, :SetChildFont, (LPARAMg_Font.GetFont(;        return TRUE;  / return TRUE unless you set the focus

10、60;to a control                  / EXCEPTION: OCX Property Pages should return FALSE使用2:int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct  &#

11、160; if (CFrameWnd:OnCreate(lpCreateStruct = -1        return -1;        if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP &#

12、160;      | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC |        !m_wndToolBar.LoadToolBar(IDR_MAINFRAME           &#

13、160;TRACE0("Failed to create toolbarn"        return -1;      / fail to create        if (!m_wndStatusBar.Create(this |  

14、0;     !m_wndStatusBar.SetIndicators(indicators,          sizeof(indicators/sizeof(UINT            TRACE0("Failed to create status barn"

15、;        return -1;      / fail to create        m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY;    EnableDocking(CBRS_ALIGN_ANY;    Do

16、ckControlBar(&m_wndToolBar;  :EnumChildWindows(m_hWnd, :SetChildFont, (LPARAMg_Font.GetFont(;    return 0;(很好用,不像mfc中的那个垃圾setfont(,设置了对话框的没有一点反应!/IconFont    LOGFONT logFont;    int  size =&#

17、160;sizeof(LOGFONT;    bool isGood = SystemParametersInfo(SPI_GETICONTITLELOGFONT,size,&logFont,0;    if(isGood = true            CFont * f;   

18、60;    f = new CFont;             const LOGFONT* pFont = new LOGFONT(logFont;        f->CreateFontIndirectW(pFont;        

19、/:EnumChildWindows(m_hWnd, :SetChildFont, (LPARAMf;        /other Font    NONCLIENTMETRICS ncm = new NONCLIENTMETRICS(;              &#

20、160;     bool isGood = SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS, ref ncm, 0;    if (isGood = true            LOGFONT

21、 logFont2;        /logFont2=ncm.lfntCaptionFont;/CaptionFont        /logFont2 =ncm.lfntSMCaptionFont;/CaptionFont_Small        /logFont2 = ncm.lfntMenuFont;/MenuFont     &#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论