一 消息
1. WM_NCACTIVATE
当客户区将要显示激活或者非激活时,WM_NCACTIVATE消息就会发送给窗口。一个窗口通过它的WindowProc函数来获取该消息。
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_NCACTIVATE
WPARAM wParam, // new state (BOOL)
LPARAM lParam // not used
);
参数:
wParam
指定标题栏或图标要显示激活或非激活状态的时机。如果标题栏或图标将要重化时,参数wparam值为TRUE。对于非激活的标题栏或图标,wparam参数为FALSE。
lParam
这个参数没有使用
返回值
当参数wparam是FALSE,应用程序应该返回TRUE,用来指示系统应该采取默认的处理。或者返回FALSE,以防止标题栏或图标被激活。当参数wparam是TRUE时,返回值将被忽略。
二,函数
1.AddFontResource
函数AddFontResource把指定文件中的字体资源加到系统字体表里。此后,该字体就可以被后来的所有的程序所使用。扩展版本:AddFontResourceEx();
int AddFontResource(
LPCTSTR lpszFilename // font file name
);
Parameters
lpszFilename
[in] 包含字体资源的文件名。
2.EnumFontFamliliesEx
函数EnumFontFamliliesEx 枚举系统中所有匹配lpLogfont字体特征的字体。函数EnumFontFamliliesEx 主要基于字体名称,字符集,或者两者进行枚举。
int EnumFontFamiliesEx(
HDC hdc, // handle to DC
LPLOGFONT lpLogfont, // font information
FONTENUMPROC lpEnumFontFamExProc, // callback function
LPARAM lParam, // additional data
DWORD dwFlags // not used; must be 0
);
参数
hdc
[in] 指向设备环境的句柄。
lpLogfont
指向LOGFONT结构的指针,该结构包含要枚举字体的信息。该函数将检查以下成员。
成员 |
描述 |
lfCharset |
如果设置成DEFAULT_CHARSET,该函数将枚举所有的字符集。如果设置为一个有效的字符集值,函数将会只从指定的字符肌中枚局字体。 |
lfFaceName |
如果设置为空字符,函数将会在每种字样名称中枚举一中字体。如果设置为一个有效的字样名称,函数将会枚举指定名称字样的所有字体。 |
lfPitchAndFamily |
必须为零。 |
lpEnumFontFamExProc
[in] 指向应用程序定义的徽调函数的指针。
lParam
[in] 指定应用程序定义的值,该函数将回把该值传递给徽调函数。
dwFlags
没有使用,必须为0。
返回值
该返回将会徽调函数最后所回的值。
3.函数EnumFontFamExProc是一个应用程序定义的回调的函数,他被函数EnumFontFamiliesEx所使用。它主要用来处理字体。每枚举一次字体,它就回被调用一次。
int CALLBACK EnumFontFamExProc(
ENUMLOGFONTEX *lpelfe, // logical-font data
NEWTEXTMETRICEX *lpntme, // physical-font data
DWORD FontType, // type of font
LPARAM lParam // application-defined data
);
Parameters
lpelfe
指向一个ENUMLOGFONTEX结构,该结构包含了字体的逻辑属性一些信息。
lpntme
指乡一个一个结构,该结构包含了字体的物理属性的一些信息。
FontType
指定字体的样式。,可以是以下值的组合。
DEVICE_FONTTYPE
RASTER_FONTTYPE
TRUETYPE_FONTTYPE
lParam
[in]指定应用程序定义的值,它由数EnumFontFamiliesEx传递过来的。
Return Values
如果要继续枚举,返回值必须不为0,要停止枚举,必须返回0。