我即将在MFC中启动文本呈现窗口。鉴于文本渲染窗口将允许不同风格的字体(并且每个窗口可以有不同的字体),我一直在考虑字体的管理。管理MFC中的字体,笔刷和笔
创建某种字体管理器有意义吗?我在想,每次需要字体时,渲染器都会将所需的LOGFONT
传递给经理。如果CFont
存在,它将被返回,如果没有,则创建。这个字体管理器在系统中是全局的。
这是矫枉过正? Windows是否会在这种情况下做这种事情,这意味着从应用程序的角度来看它完全不是必需的?
人们也可以说,对于特定颜色的画笔和笔也是如此。一旦创建了某种类型的管理器,将它们存储到某个管理器中会更快吗?例如,如果我创建了一个坚固的淡紫色画笔,是否需要另一个需要淡紫色的窗口请求现有画笔?另外,我猜如果我加载磁盘上的图像blit,如果两个独立的窗口从磁盘加载相同的图像,我会有两个图像 - 所以这些是缓存的好候选者(按文件名,或许?)
嗨,詹姆斯,是的,我知道GetStockXXX函数。但是,这仅适用于库存对象(基本字体和笔刷),而不是自定义颜色或用户从字体选择对话框中选择的字体(例如(以及随后应用于该字体的任何样式,如Bold,Italic &下划线)。 – 2011-01-21 12:19:28