ListBox的使用

1、添加行

m_ctrlListBox.AddString("第一行");   
m_ctrlListBox.AddString("第二行");   

2、清空列表

m_ctrlListBox.ResetContent();

3、设置列表控件的背景颜色

①   先创建一个基于对话框的工程,命名为test,然后在对话框上加入一个ListBox控件。     

②   在testDlg.h中加入一个成员变量:HBRUSH   m_hbrush;     

③   在OnInitDialog()中,加入m_hbrush=CreateSolidBrush(RGB(0,0,0);此处设置的RGB值可以改变ListBox的背景色。

④   点击Class Wizard,给testDlg加入WM_CTLCOLOR事件,单击Edit Code按钮,然后把该函数的内容替换为如下代码:     

  if(nCtlColor==   CTLCOLOR_LISTBOX)   
  {   
        pDC->SetBkMode(TRANSPARENT);                                 
        pDC->SetTextColor(RGB(255,255,255));    //此处设置字体的颜色  
        return   m_hbrush;   
  }   
  else   
        return   CDialog::OnCtlColor(pDC,   pWnd,   nCtlColor);   

 

4、改变字体大小

在OnInitDialog函数中添加以下代码:

CFont f;  
LOGFONT logFont;  
	
//设置控件背景颜色字体颜色、以及字体大小
logFont.lfHeight=15; //字体高度
logFont.lfWidth=0; //字体间距
logFont.lfWeight=FW_THIN;  
f.CreateFontIndirect(&logFont);  
GetDlgItem(IDC_LIST_FILE)->SetFont(&f,1); 

  

附:
MFC CFont 字体 LogFont

   typedef struct tagLOGFONT { 
   LONG lfHeight;                 // 高度
   LONG lfWidth;                  // 宽度
   LONG lfEscapement;             // 打印角度,900垂直打印,0水平打印
   LONG lfOrientation;            // 字体打印角度,1800上下倒置,900左右倒置.
   LONG lfWeight;                 // 字体粗细,默认是0,还常用400,700
   BYTE lfItalic;                 // 斜体字,默认0非斜体,1斜体.
   BYTE lfUnderline;              // 下划线,默认0无.
   BYTE lfStrikeOut;              // 字体被直线穿过,默认0无.
   BYTE lfCharSet;                // 字符集,如宋体字,一般设置为DEFAUL_CHARSET.
   BYTE lfOutPrecision;           // 符合度,看不明白?一般设置为OUT_DEFAUL_PRECIS
   BYTE lfClipPrecision;          // 不懂,一般设置为CLIP_DEAFAUL_PRECIS
   BYTE lfQuality;                // 字体图形质量,不管,设为DEFAUL_QUALITY
   BYTE lfPitchAndFamily;         // 字间距,不管,设为DEFAUL_PITCH+FF_DONTCARE
   TCHAR lfFaceName[LF_FACESIZE]; // 所有字体式样数组,供字体回调函数调用
} LOGFONT, *PLOGFONT; 

  

其他函数:

GetCurSel():返回当前选中项索引号;

SetCurSel(int index):设置当前选中项

posted on 2011-07-22 15:49  MaggieNing  阅读(437)  评论(0编辑  收藏  举报

导航