我使用纯Win32 API(RegisterClass和CreateWindow函数)创build窗口。 我怎样才能指定一个窗口的字体而不是系统定义的字体?
当你创建自己的窗口类时,你自己负责管理字体。 这个任务将有四个部分:
vividos表示只是使用CreateFont()/ CreateFontIndirect :
HFONT hFont = CreateFont (13, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, TEXT("Tahoma"));
然后使用WM_SETFONT消息为您的窗口/控件设置此字体:
SendMessage(window, WM_SETFONT, hFont, TRUE);
如果你超级已经有自己的字体句柄的标准通用控件,使用这种方法:只需使用CreateFont或CreateFontIndirect创建一个字体,并使用WM_SETFONT消息(在MFC和ATL将有一个相应的SetFont函数)设置它。 当不再需要字体时,使用DeleteObject销毁字体。 一定不要破坏窗口以前设置的字体。
如果你正在编写自己绘制的自定义控件,只需使用CreateFont或CreateFontIndirect创建一个新的字体对象,并将其存储在你的类中。 如果您想支持第三方用户,请处理WM_SETFONT和WM_GETFONT以让用户设置另一种字体。 绘画时,使用当前存储在类中的字体对象。