一个简单的菜问题,关于类的释放的问题

coolwin11 2005-06-07 11:11:12
我在一个视图的类里定义了一个LOGFONT结构,在类创建时初使化该结构,在InititalUpdate中我想创建该字体类并选入视图中,那么:
1.视图中原有的CFont类我是否要保存下来,直到视图销毁时再恢复?
2.这个新创建的CFont可以不用保存么?下次创建新字体时会有影响么?需要做什么操作?
...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolwin11 2005-06-07
  • 打赏
  • 举报
回复
顶一下,谁帮我解释一下啊
coolwin11 2005-06-07
  • 打赏
  • 举报
回复
如果按照第一种方法,那么如果运行过程中想改变字体又怎么办?新创建的字体也需要保存么?
younggle 2005-06-07
  • 打赏
  • 举报
回复
第一种方法比较好!
bluestone 2005-06-07
  • 打赏
  • 举报
回复
只是记录字体的规格,在具体描画的时候再修改CDC的内容,描画完成之后立即恢复~这样的方法应该比较安全。
cozil 2005-06-07
  • 打赏
  • 举报
回复
关注.帮你顶一下
coolwin11 2005-06-07
  • 打赏
  • 举报
回复
有人帮忙么?
为什么我在OnInititalUpdate里创建了字体并选入DC后,OnDraw后打出的文字仍然是默认的字体?
我试用CPaintDC dc(this),CClientDC dc(this),GetDC() 返回的dc传入Make_Font创建字体并选入,可没有效果。代码如下:
void CHexView::Make_Font(CDC *pDC)
{
CFont sysFont,*pOldFont;
HFONT hFont;

ASSERT( pDC );
//计算标尺高度
TEXTMETRIC tm;

//释放上一次创建的字体
if( m_pOldFont )
{
pDC->SelectObject( m_pOldFont );
DeleteObject( m_CurrFont.Detach() );
m_pOldFont = NULL;
}

//设置LOGFONT结构
int nHeight = -MulDiv(m_FontSize, pDC->GetDeviceCaps(LOGPIXELSY), 72);
m_lfText.lfHeight = nHeight;

//字体选入场景
hFont = CreateFontIndirect( &m_lfText );
if( hFont == NULL )
m_CurrFont.CreateStockObject( SYSTEM_FIXED_FONT );
else
m_CurrFont.Attach( hFont );
m_pOldFont = pDC->SelectObject( &m_CurrFont );
}

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧