MFC 常用控件使用

最近編寫了一個小工具,實現文件的合併與拆分,依然是使用的MFC,在編寫工具過程中,基本把涉及到的文件的讀寫都過了一遍,同時涉及到MFC中“Tab Contorl”“Combo Box”“List Box”以及"Check Box"的使用,對於一些常見的問題解決方法在這裏做一個小小的總結。

Part 1:MFC控件
Tab Contorl 選項卡
效果如下圖

將一個tab contorl拖到Dlg中,給它起個名字,就叫“TAB_CONTORL1”
在dlg.h文件中新建一個變量CTabCtrl * m_mergesplit;
在dlg.cpp中進行賦值:
m_mergesplit = (CTabCtrl *)GetDlgItem(TAB_CONTORL1);
接下來就是對Tab Contorl的操作了:
m_mergesplit->InsertItem(0,"合併文件");
m_mergesplit->InsertItem(1,"拆分文件");
//將2個定義好的子Dlg添加到客戶區中(m_merge和m_split 是2個dlg)
m_merge.Create(MERGE,GetDlgItem(IDC_TAB1));
m_split.Create(SPLIT,GetDlgItem(IDC_TAB1));
//獲得TAB_CONTORL1客戶區大小
CRect rc;
m_mergesplit->GetClientRect(&rc);
//調整子Dlg在父窗口中的位置
rc.top += 30;rc.bottom -= 8;
rc.left += 8;rc.right -= 8;
//設置子對話框尺寸並移動到指定位置
m_merge.MoveWindow(&rc);
m_split.MoveWindow(&rc);
//分別設置隱藏和顯示,(設置顯示 m_merge 子對話框)
m_merge.ShowWindow(true);
m_split.ShowWindow(false);
//設置默認的選項卡,(設置選項卡也是顯示第一個)
m_mergesplit->SetCurSel(0);

Combo Box 下拉框
效果如下圖:

這也是MFC中常用的一個控件,主要就是添加內容與讀取內容
在.h文件中定義:CComboBox * m_mycombo;
在.cpp文件中:
添加內容
//變量連接到對應的控件
m_mycombo= (CComboBox*)GetDlgItem(MYCOMBO);
//設置顯示的項目條數
m_mycombo->SetCurSel(2);
//添加項目
m_mycombo->AddString("64");
m_mycombo->AddString("128");
讀取內容
//變量連接到對應的控件
CString msg;//獲取到的內容是CString類型的
m_mycombo= (CComboBox *)GetDlgItem(MYCOMBO);
m_mycombo= (CComboBox *)GetDlgItem(MYCOMBO);
m_mycombo->GetWindowText(msg);

List Box 列表框
主要用於顯示多條記錄,例如數據庫結果等
在.h文件中定義:CListBox * m_mylist;
數據插入
//變量連接到對應控件
m_mylist= (CListBox *)GetDlgItem(MYLIST);
CString msg;
//添加到列表中
m_mylist->AddString(msg);
數據刪除
//變量連接到對應控件
m_mylist = (CListBox *)GetDlgItem(MYLIST);
//獲取當前選中的項目的下標
int index = m_mylist->GetCurSel();
//刪除該條目
m_mylist->DeleteString(index);

Check Box 複選框
複選框比較簡單,就是選中與非選中
在.h文件中定義:CButton * m_mycheckbox;
在.cpp文件中:
//將變量與控件綁定
m_mycheckbox= (CButton*)GetDlgItem(MYCHECKBOX);
//獲取當前控件的狀態
int state = m_mycheckbox->GetCheck();
if (state == 1) //被選中
{
//相關操作
}
else //取消選中
{
//其他相關操作
}
對於文件讀寫及拼接,在下一篇中闡述。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章