用户可以在这个对话框中选择活动窗口、消息框以及文字的颜色和字体。你可以调用SystemParametersInfo函数,用SPI_GETNONCLIENTMETRICS作为第一个参数来查出用户选择了什么字体;SystemParametersInfo 函数将你需要的信息填写到NONCLIENTMETRICS 结构中: // NONCLIENTMETRICS 结构(winuser.h) // struct NONCLIENTMETRICS { UINT cbSize; int iBorderWidth; int iScrollWidth; int iScrollHeight; int iCaptionWidth; int iCaptionHeight; LOGFONT lfCaptionFont; int iSmCaptionWidth; int iSmCaptionHeight; LOGFONT lfSmCaptionFont; int iMenuWidth; int iMenuHeight; LOGFONT lfMenuFont; LOGFONT lfStatusFont; LOGFONT lfMessageFont; }; 这个结构含有用于菜单、消息及其它字体的LOGFONT结构。一旦你有了字体,那如何知道显示给定的文本串需要多大的屏幕空间?这是Windows编程的一个共同问题。所幸的是,Windows中有一个专门的函数,用它可以在屏幕的任何地方显示文本,这个函数就是 DrawText。在Windows中这是一个基本的文本显示函数。它的功能是在指定的屏幕坐标上显示(或者说绘制)文本串。