一.list control列表控制項(隸屬於clistctrl類)
1. clistctrl 風格
lvs_icon: //為每個item顯示大圖示
lvs_smallicon: //為每個item顯示小圖示
lvs_list: //顯示一列帶有小圖示的item
lvs_report: //顯示item詳細資料
//直觀的理解:windows資源管理器,「檢視」標籤下的「大圖示,小圖示,列表,詳細資料」
2. 設定listctrl 風格及擴充套件風格
long lstyle;
lstyle = getwindowlong(m_list.m_hwnd, gwl_style);//獲取當前視窗style
lstyle &= ~lvs_typemask; //清除顯示方式位
lstyle |= lvs_report; //設定style
setwindowlong(m_list.m_hwnd, gwl_style, lstyle);//設定style
dword dwstyle = m_list.getextendedstyle();
dwstyle |= lvs_ex_fullrowselect;//選中某行使整行高亮(只適用與report風格的listctrl)
dwstyle |= lvs_ex_gridlines;//網格線(只適用與report風格的listctrl)
dwstyle |= lvs_ex_checkboxes;//item前生成checkbox控制項
m_list.setextendedstyle(dwstyle); //設定擴充套件風格
3. 插入資料
m_list.insertcolumn( 0, "id", lvcfmt_left, 40 );//插入列
m_list.insertcolumn( 1, "name", lvcfmt_left, 50 );
int nrow = m_list.insertitem(0, "11");//插入行
m_list.setitemtext(nrow, 1, "jacky");//設定資料
4. 刪除所有列
// 方法一:
while ( m_list.deletecolumn (0))
//因為你刪除了第一列後,後面的列會依次向上移動。
//方法二:
int ncolumns = 4;
for (int i=ncolumns-1; i>=0; i--)
m_list.deletecolumn (i);
5. 單行刪除(刪除最後一行)
int n = 0;//全域性變數,代表之前新增的行
if(n == 0)
n--;
m_list.deleteitem(n);
6. 單行刪除(刪除選中行)
if(n == 0)
for(int i=0;i二.combobox控制項
1.在類嚮導中建立控制項關聯成員變數m_combo,型別為ccombobox
控制項屬性為下拉列表,並去掉分類屬性(按照寫入字串的順序排序而非字母順序)。
2.在初始化函式oninitdialog()中新增控制項初始化顯示的內容
m_combo.addstring("漢族");
m_combo.addstring("其他");
// ((ccombobox*)getdlgitem(idc_nation))->addstring("另一種");//此方法也可以,但是不夠簡單
m_combo.setcursel(0);//初始化選擇"漢族"
3.獲取當前選擇字串
cstring str;
int nsel = m_combo.getcursel();
m_combo.getlbtext(nsel,str);
**
bool clistctrldlg::oninitdialog() }
// set the icon for this dialog. the framework does this automatically
seticon(m_hicon, true); // set big icon
seticon(m_hicon, false); // set small icon
// todo: add extra initialization here
return true; // return true unless you set the focus to a control
}//列表屬性要調成「報告」
bool clistctrldlg::addlist()
m_list.insertcolumn(0,"工號",lvcfmt_left,60);
m_list.insertcolumn(1,"姓名",lvcfmt_left,70);
m_list.insertcolumn(2,"部門",lvcfmt_left,50);
m_list.insertcolumn(3,"性別",lvcfmt_left,50);
m_list.insertcolumn(4,"學歷",lvcfmt_left,60);
m_list.insertcolumn(5,"外語",lvcfmt_left,60);
m_list.insertcolumn(6,"民族",lvcfmt_left,60);
m_list.insertcolumn(7,"入職日期",lvcfmt_left,100);
//設定背景及風格
m_list.setextendedstyle(lvs_ex_checkboxes|lvs_ex_fullrowselect|lvs_ex_headerdragdrop|lvs_ex_oneclickactivate|lvs_ex_gridlines);
m_list.setbkcolor(rgb(220,240,240)); //設定背景顏色
m_list.settextbkcolor(rgb(220,240,240));//設定文字背景顏色
m_list.settextcolor(rgb(128,64,0)); //設定文字顏色
return true;
}//增加行的函式
bool clistctrldlg::addlistitem()
int ncount = m_list.getitemcount();//獲取當前已經存在的行數
m_list.insertitem(ncount,m_sznumber);
m_list.setitemtext(ncount,1,m_szname);
m_list.setitemtext(ncount,2,m_szbranch);
m_list.setitemtext(ncount,3,m_n***?"女":"男");
char *p=;
m_list.setitemtext(ncount,4,p[m_neduca]);
//對於核取方塊,選中為真,初始化都為false(定義成員變數的時候在建構函式中已經初始化)
cstring str;
if(m_bengl)
str += "英";
if(m_bjapa)
str += "日";
if(m_bruss)
str += "俄";
if(m_bkorea)
str += "韓";
if(str.isempty())
str += "無";
m_list.setitemtext(ncount,5,str);
int nsel = m_nation.getcursel();
m_nation.getlbtext(nsel,str);
m_list.setitemtext(ncount,6,str);
str.format("%d-%d-%d",m_dtjoin.getyear(),m_dtjoin.getmonth(),m_dtjoin.getday());
m_list.setitemtext(ncount,7,str);
// ++n;
return true;
}//刪除行的函式
bool clistctrldlg::deletelistitem()
for(int i=0;i
MFC之Tab Control控制項簡單使用
在mfc當中使用tab control控制項切換不同的介面,使用起來會複雜一些,至少是比qt中的tab widget複雜得多。我接下來會以乙個mfc對話方塊應用程式為例子,說明tab control控制項的簡單使用方法。1.1建立乙個mfc對話方塊應用程式,在對話方塊中拖入tab control控制...
MFC控制項使用
對於一般控制項,直接宣告後呼叫其create 方法就可以在檢視中建立,如 cstatic m static m static.create static ws child ws visible ss center,crect 20,20,100,40 this,0 其中的crect是用來定位及定義大...
MFC中Listbox控制項的簡單使用
mfc中listbox控制項是為了顯示一系列的文字,每個文字佔一行。listbox控制項可以設定屬性為 lbs child 預設 子視窗 lbs visible 預設 可視 lbs multiplesel 可選擇多行 lbs extendedsel 可以使用shift或ctrl選擇多行 lbs so...