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的行在可見區域的最后一行

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM