| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 897 人关注过本帖
标题:vc++文本显示
只看楼主 加入收藏
泉水天堂
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-4-16
收藏
 问题点数:0 回复次数:4 
vc++文本显示
我想设置文字的大小,样式,字体等
用向导建立一个单文档MFC应用程序,其他部分未做任何改动
只写了如下部分:
void CPANView::OnDraw(CDC* pDC)
{
    CPANDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
     LOGFONT If;
     pDC->GetCurrentFont()->GetLogFont(&If);   //7
     CFont font;
     If.lfCharSet=80;  //9
     If.lfHeight=80;    //10
     If.lfWidth=0;      //11
     strcpy(If.lfFaceName,"华文彩云");    //12
     font.CreateFontIndirect(&If);         //13
     CFont *oldFont=pDC->SelectObject(&font);
     font.CreateFont(40,40,0,0,FW_NORMAL,TRUE,TRUE,TRUE,ANSI_CHARSET,
                OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
                DEFAULT_PITCH,"隶书");
      pDC->TextOut(100,100,"我是一个学生!");
         
}
上面的有些属性是不能显示的。怎么样改才可以显示正常呀?
没有写上面标注的行数的时候,其他显示正常,除了字体。
但加了之后,其他显示都不正常,只有字体正常,该怎么改呢?

[[it] 本帖最后由 泉水天堂 于 2008-11-1 22:33 编辑 [/it]]
搜索更多相关主题的帖子: 文本 
2008-11-01 21:45
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
收藏
得分:0 
楼主你的程序里面已经通过font.CreateFontIndirect(&If);
创建了一个字体的对象了,并且已经设置成了将要显示的字体,
下面又有一句创建字体的语句
 font.CreateFont(40,40,0,0,FW_NORMAL,TRUE,TRUE,TRUE,ANSI_CHARSET,
                OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
                DEFAULT_PITCH,"隶书");
所以会弹出调错框
所以可以这样:
void CPANView::OnDraw(CDC* pDC)
{
    CPANDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
     LOGFONT If;
     pDC->GetCurrentFont()->GetLogFont(&If);
     CFont font;
     If.lfCharSet=80;
     If.lfHeight=80;
     If.lfWidth=0;
     strcpy(If.lfFaceName,"华文彩云");
     font.CreateFontIndirect(&If);
     CFont *oldFont=pDC->SelectObject(&font);
           pDC->TextOut(100,100,"我是一个学生!");
       pDC->SelectObject(oldFont);
}

或者是这样
void CPANView::OnDraw(CDC* pDC)
{
    CPANDoc* pDoc = GetDocument();

    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here

         CFont font;
     
     font.CreateFont(40,40,0,0,FW_NORMAL,TRUE,TRUE,TRUE,ANSI_CHARSET,
                OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
                DEFAULT_PITCH,"隶书");
  CFont *oldFont=pDC->SelectObject(&font);
      pDC->TextOut(100,100,"我是一个学生!");
    pDC->SelectObject(oldFont);

}
都可以的
看来楼主关于字体的设置的步骤的认识很混乱,建议看下书
2008-11-01 22:42
泉水天堂
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-4-16
收藏
得分:0 
我之前就是像版主后面给出的样子写的
但是 字体的属性无法表现出来
2008-11-01 23:23
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
收藏
得分:0 
字体的属性无法表现出来??
楼主想实现什么效果??
2008-11-02 17:25
泉水天堂
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-4-16
收藏
得分:0 
回复 4# 的帖子
前面一种写法可以

后面一种写法的字体是失效的,不管写的哪种字体,都只显示一个样式的
2008-11-02 17:47
快速回复:vc++文本显示
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016001 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved