动态生成窗口时,如何设定窗口的字体?

colorknight 2002-07-08 11:30:42
在用CREATEWINDOW动态生成窗口时,要改变窗口的字体应如何做?一般生成的窗口是系统
默认字体。我在程序中,在窗口生成后用SETFONT方法和SELECTOBJECT()API都试过,可
是无法改变字体,不知道这是怎么回事。字体肯定是已经生成成功的了,另外,窗口不全指对话框,还有其他通用控件,不知道谁能解释。或帮我解决下面的问题。
在窗口生成并在显示前改变窗口的字体,或者有什么办法在窗口生成之前为其指定字体
也可以。
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kekepengpeng2 2002-08-19
  • 打赏
  • 举报
回复
我也遇到了同样的问题,我的问题出现在属性单里边。属性单里边的字体好象也是不随程序控制。我的程序因为要发行多语言版本,首先在中文环境之下,用的是宋体,当然没有问题,然后在英语版本底下,没有宋体,所以整个对话框就乱了。
lonelyplanet 2002-07-08
  • 打赏
  • 举报
回复
1.如果CreateWindow生成的
HWND hWnd = CreateWindow(...);
可以SendMessage(hWnd, WM_SETFONT, ...);
没试过。

2.如果Create生成的

CButton btn;
btn.Create(...);
btn.ShowWindow(TRUE);

CFont font;
VERIFY(font.CreateFont(...));

btn->SetFont(&font);
btn->UpdateWindow();
luckychange 2002-07-08
  • 打赏
  • 举报
回复
CWnd::SetFont
void SetFont( CFont* pFont, BOOL bRedraw = TRUE );

Parameters

pFont

Specifies the new font.

bRedraw

If TRUE, redraw the CWnd object.

Remarks

Sets the window’s current font to the specified font. If bRedraw is TRUE, the window will also be redrawn.
colorknight 2002-07-08
  • 打赏
  • 举报
回复
字体设置无效,甚至在资源里将对话框的字体改为“MS SANS SERIF”,大小是8,
显示后用GETFONT获得字体,却是“宋体”,不知道怎么解决这种问题。
上面二位的方法,我在问问题时就已经试过了,不过还有谢谢二位,等问题解决了
就结帐。

16,472

社区成员

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

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

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