文本框中的字体加粗

我想使文本框中的字体加粗,其他属性如字体等等不变。如何实现?  
  请写详悉点,谢谢! 问题点数:30、回复次数:13Top

 

2 楼gboy(★)(★)回复于 2002-02-08 13:03:54 得分 5

CFont*   pFont=m_edit.GetFont();  
  LOGFONT   lf;  
  pFont->GetLogFont(&lf);  
  lf.lfWeight   =   700;  
  m_font.CreateFontIndirect(&lf);  
  m_edit.SetFont(&m_font);  
  Top

3 楼Mictel(Mictel)回复于 2002-02-08 13:11:27 得分 0

m_font是什么?是不是应当是   pFont   啊?  
  我改成pFont   运行时有问题Top

4 楼qjwj_hl(玩的不好)回复于 2002-02-08 13:17:29 得分 0

论坛怎么成了这个样子??我怎么提问题??Top

5 楼gboy(★)(★)回复于 2002-02-08 13:20:34 得分 10

m_font   可以是你的一个类成员,不能用   pFont  
  CFont   m_fontTop

6 楼newgenius(流星飞雨)回复于 2002-02-08 13:40:50 得分 5

CFont*   pFont=m_edit.GetFont();  
  LOGFONT   lf;  
  pFont->GetLogFont(&lf);  
  lf.lfWeight   =   700;  
  m_font.CreateFontIndirect(&lf);  
  m_edit.SetFont(&m_font);//m_edit是EDIT控件的控制变量  
   
  将这段代码放在OnInitDialog()中可以正常运行Top

7 楼Mictel(Mictel)回复于 2002-02-08 14:05:49 得分 0

o,成功了,但是:  
  为何只能执行一次,比如我有一个按钮控制文本框中文本的加粗,按一下执行上面的程序,字体变粗了。如果再按一下程序就出错????Top

8 楼newgenius(流星飞雨)回复于 2002-02-08 14:25:30 得分 10

CFont*   pFont=m_edit.GetFont();  
  LOGFONT   lf;  
  pFont->GetLogFont(&lf);  
  lf.lfWeight   =   700;  
  m_font.CreateFontIndirect(&lf);  
  将这段代码放在OnInitDialog()  
  然后在按钮对应的命令函数中CXXX:OnXXX()  
  中加入m_edit.SetFont(&m_font);即可以动态控制了Top

9 楼AttaBoy(网际游魂)回复于 2002-02-09 15:08:03 得分 0

是因为m_font是类成员变量,你要用它创建字体当然只能创建一次了,所以在下次创建之前,应该先释放再创建.Top

10 楼luchong2000(乐悟)回复于 2002-02-18 11:28:37 得分 0

??Top

11 楼cloudrain(supxb)回复于 2002-02-19 16:31:21 得分 0

每次使用m_font时先判断其是否不为空,若不空就先释放它再用Top

12 楼XiaoBaiCai(小白菜)回复于 2002-02-21 08:57:53 得分 0

哎,怎么没有难一些、水平高一些的问题?Top

13 楼ck1976(ck1976)回复于 2002-02-22 13:15:32 得分 0

CEdit是从CWnd派生的,支持字体的改变,最好的办法应该是从CEdit派生CFontEdit类,在该类中更改字体 

 

 

 

    // Create a new font so we can change it later
     CFont * f = GetFont();
     CFont newfont;
     LOGFONT lf;
     if(f != NULL)
         { /* Set up duplicate font */
          f- >GetObject(sizeof(LOGFONT), &lf);
          // change font size & bold style with lf here.
          ...
          newfont.CreateFontIndirect(&lf);
         } /* Set up duplicate font */
     else
         { /* Use default font spec */
          newfont.CreateStockObject(ANSI_VAR_FONT);
         } /* Use default font spec */
     SetFont(newfont);
     newfont.Detach();

 

 

HFONT hFont = (HFONT)::SendMessage( m_hName, WM_GETFONT, 0, 0 );
if(hFont==0) hFont=(HFONT)::GetStockObject(SYSTEM_FONT);
LOGFONT dtLogFont;
::GetObject( hFont, sizeof(dtLogFont), &dtLogFont );
dtLogFont.lfWeight = FW_BOLD;
hFont = ::CreateFontIndirect(&dtLogFont);
::SendMessage( m_hName, WM_SETFONT, (WPARAM)hFont, MAKELONG(TRUE,0) );

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值