• 您的位置我爱Aspx >> VC.Net >> <b>根据文本串的长度改变窗口的大小</b>
  • <b>根据文本串的长度改变窗口的大小</b>

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:13:12  关键字:
  • 根据文本串的长度改变窗口的大小

    提出问题:

    根据文本文件的内容,用CWin的子类对控制进行动态创建。在Create方法中,根据用户在显示属性对话框中选择的消息文本字体,用下列代码创建所有的控制:

    NONCLIENTMETRICS ncm;

    ncm.cbSize = sizeof(NONCLIENTMETRICS);

    SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0);

    m_DefaultFont.CreateFontIndirect(&ncm.lfMessageFont);

    获得字体以后,接下来的问题是如何才能确定静态控制的高度与宽度以便显示完整的文本?

    首先应该明确的是所谓显示属性对话框即在桌面单击右键,选择“属性”菜单项,再选择“外观”属性页出现的对话框(图一)。

    用户可以在这个对话框中选择活动窗口、消息框以及文字的颜色和字体。你可以调用SystemParametersInfo函数,用SPI_GETNONCLIENTMETRICS作为第一个参数来查出用户选择了什么字体;SystemParametersInfo 函数将你需要的信息填写到NONCLIENTMETRICS 结构中:

    // NONCLIENTMETRICS 结构(winuser.h)

    //

    struct NONCLIENTMETRICS

    {

    UINT cbSize;

    int iBorderWidth;

    int iScrollWidth;

    int iScrollHeight;

    int iCaptionWidth;

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:<b>如何在windows程序中读取bios内容</b>
    下一篇:<b>VC控件 TreeCtrl 与 ListCtrl 演示</b>
  • 相关文章