MFC控制項的使用

2021-07-03 10:38:53 字數 2777 閱讀 8532



mfc控制項的使用

mfc 對話方塊設計問題(控制項的使用) 

1.如何在對話方塊上新增

利用mfc中的picture control控制項,步驟如下:

在資源管理其中新增乙個位**件;

在對話方塊中新增乙個picture control控制項,並將該控制項type屬性選擇為bitmap;

隨後,在image屬性中選擇新增的點陣圖資源id

2.如何在對話方塊中顯示**

實現類似excel的**,以供資料顯示

利用list control控制項,步驟如下:

在對話方塊中新增乙個list control控制項,將其屬性view設定為report(報表形式);

原檔案中新增乙個list control控制項物件,並與對話方塊中list control控制項關聯;

給呼叫函式insertcolumn該空間新增列表;

設定列表的樣式;

原**如下:

標頭檔案中:clistctrl m_listctrl;

原始檔中:ddx_control(pdx, idc_list_data, m_listctrl);

crect mrect;

m_listctrl.getwindowrect(&mrect);     //獲取控制項矩形區域

int kuan = mrect.width();

m_listctrl.insertcolumn(0,_t("序號"),lvcfmt_left,kuan/7,-1);

m_listctrl.insertcolumn(1,_t("姓名"),lvcfmt_center,kuan/7,-1);

m_listctrl.insertcolumn(2,_t("年齡"),lvcfmt_center,kuan/7,-1);

m_listctrl.insertcolumn(3,_t("班級"),lvcfmt_center,kuan/7,-1);

m_listctrl.insertcolumn(4,_t("學號"),lvcfmt_center,kuan/7,-1);

m_listctrl.insertcolumn(5,_t("籍貫"),lvcfmt_center,kuan/7,-1);

m_listctrl.insertcolumn(6,_t("性別"),lvcfmt_center,kuan/7,-1);

dword dwstyle = m_listctrl.getextendedstyle(); //獲取當前擴充套件樣式

dwstyle |= lvs_ex_fullrowselect; //選中某行使整行高亮(report風格時)

dwstyle |= lvs_ex_gridlines; //網格線(report風格時)

dwstyle |= lvs_ex_checkboxes; //item前生成checkbox控制項

m_listctrl.setextendedstyle(dwstyle); //設定擴充套件風格

3.如何設定、獲取combobox控制項當前項

設定combobox當前項:ccombobox::setcursel(int)    引數即為選擇的項序號,項序號從0開始

得到當前項序號:ccombobox::getcursel()    返回值為當前項序號,int型

得到當前項文字:ccombobox::getlbtext(nselect,str)    第乙個引數為當前項序號,第二個引數為該項對應的文字

4.如何設定static text控制項上的文字

getdlgitem(idc_static_state1)->setwindowtext(_t("設定成功"))     getdlgitem函式中引數為控制項id

5.如何向listctrl控制項中寫資料

首先要將listctrl控制項屬性view設定為report(報表形式)

注意:listctrl中資料均為字串型,所以顯示數字時要涉及到型別轉換問題

將int型轉為cstring型方法:cstring::format(_t("%d"), int i)     將int型變數i轉換為十進位制顯示的字串

此外兩個cstring是可以直接相加的,這樣可以滿足列表中資料顯示要求,如_t("0")+_t("1")就得到了_t("01")

m_listctrl.insertitem(int nitem,stritem);//在第nitem行第一列插入資料,資料為stritem,返回值為下一行nitem+1

m_listctrl.setitemtext(int nitem, 1, data1);//在某一行的某一列設定資料,這裡在int nitem行第2列(第一列前面幾句已經寫了)寫資料data1

m_listctrl.setitemtext(int nitem, 2, data2);//在nrow行第2列(第一列前面幾句已經寫了)寫資料data1

6.button上的字型如何換行

button上的字太長了時需要換行,實現如下:

將button屬性的multiline設定為true

再要換行的字前加\n      比如:"神馬按鈕"寫成"神馬\n按鈕"

7.刪除listctrl中資料

全部刪除:clistctrl::deleteallitems()

8.得到listctrl列表中的某個資料

得到nitem行nsubitem列的資料:clistctrl::getitemtext(int   nitem,   int   nsubitem)    返回值為cstring型

9.listctrl  滾輪自動顯示到列表最後一行

clistctrl::ensurevisible(int nitem,false);

即序列號為nitem的行在可見區域的最後一行

MFC控制項使用

對於一般控制項,直接宣告後呼叫其create 方法就可以在檢視中建立,如 cstatic m static m static.create static ws child ws visible ss center,crect 20,20,100,40 this,0 其中的crect是用來定位及定義大...

MFC的Picture控制項使用

1.首先新增乙個picture控制項,type選bitmap,id為idc static logo 2.新增乙個資源,id為idb bitmap logo 3.在初始化中新增 加logo cbitmap bmp bmp.loadbitmap idb bitmap logo cstatic getdl...

MFC中Tab Control 控制項的使用

1.先建立乙個對話方塊mfc應用程式,然後在工具箱裡面把tab control控制項放到對話方塊中的合適位置上。再在對話方塊類中,宣告乙個ctabctrl變數 ctabctrl m tab 變數m tab用來與對話方塊中的tab control控制項互動,為此要在dodataexchange函式中加...