有一个项目是基于对话框的,有这样一些问题无从下手 1、如何在CListBox里面使用水平滚动条? 2、如何动态控制窗口的标题和VS_VERSION_INFO内容 3、先看下面2张图片 第一张是以前通过直接把VC6里面的Control窗口里面的控件拖动到项目的窗口生成的。上面的字体是通过控件的属性添加的。 
注意字体的大小 第二张的控件完全是动态生成的,明显的是字体大小和第一张图片不一样 
我不知道为什么会这样?请指教。图片一:http://ror.cn/forum/attach/2003/11/21/1285442-Snap2-embed.gif
图片二:http://ror.cn/forum/attach/2003/11/21/1285443-Snap3-embed.gif

解决方案 »

  1.   

    1     m_listbox.AddString("fdfdfdfdfdfdfdfdffffffffffffffffffffff");
    m_listbox.AddString("fdfddddddddddddddddddddddddddddddddddd");
    m_listbox.AddString("fdffffffffffffffffffffffffffffffffdffdf");
    m_listbox.SetHorizontalExtent(255);要比最长的还要长
    2         SetWindowText();3         动态生成的控件你必须自己添加字体,可以通过调用控件的SetFont函数来设置。
      

  2.   

    2   具体的这样(VC知识库中看到)
    如何改变窗口标题
     
    调用CWnd : : SetWindowText可以改变任何窗口(包括控件)的标题。
    //Set title for application's main frame window .
    AfxGetMainWnd ( ) —> SetWindowText (_T("Application title") )
    //Set title for View's MDI child frame window .
    GetParentFrame ( ) —> SetWindowText ("_T ("MDI Child Frame new title")
    )
    //Set title for dialog's push button control.
    GetDigitem (IDC_BUTTON) —> SetWindowText (_T ("Button new title ") )
    如果需要经常修改窗口的标题(注:控件也是窗口),应该考虑使用半文档化的函数AfxSetWindowText。该函数在AFXPRIV.H中说明,在WINUTIL.CPP中实现,在联机帮助中找不到它,它在AFXPRIV.H中半文档化, 在以后发行的MFC中将文档化。
    AfxSetWindowText的实现如下:
    voik AFXAPI AfxSetWindowText (HWND hWndCtrl , LPCTSTR IpszNew )
    {
     itn nNewLen= Istrlen (Ipaznew)
     TCHAR szOld [256]
     //fast check to see if text really changes (reduces
    flash in the
    controls )
     if (nNewLen >_contof (szOld)
    || ::GetWindowText (hWndCrtl, szOld , _countof (szOld) !=nNewLen
    || Istrcmp (szOld , IpszNew)! = 0
    {
     //change it
    ::SetWindowText(hWndCtrl , IpszNew )
     }