MFC控制項入門

2021-05-22 05:12:25 字數 4408 閱讀 9704

專案第乙個步驟:

控制項使用

實驗目的和要求(1

)建立乙個預設的對話方塊應用程式

ex_ctrls

,如圖2.1

所示。 (2

)設計乙個如圖

2.2所示的「

課程資訊

」對話方塊。

圖2.1ex_ctrls

對話方塊圖

2.2「課程資訊」對話方塊(3

)實現功能:單擊圖

2.1中的「課程資訊」按鈕,彈出「學生基本資訊」對話方塊,單擊「新增」按鈕,對話方塊內容顯示在圖

2.1中的列表框中。

實驗準備和說明(1

)具備知識:靜態控制項、按鈕、編輯框、旋轉按鈕控制項、列表框和組合框控制項。 (

2)建立本次實驗工作資料夾「

…/visual c++程式/

實驗」。

實驗內容和步驟

1.啟動visual c++ 6.0

開啟計算機,啟動

visual c++ 6.0

系統。

2.建立乙個預設的對話方塊應用程式ex_ctrls ①

選擇「檔案」→「新建」選單,在彈出的「新建」對話方塊中選擇「工程」頁面,選擇

(exe

),在工程框中輸入

ex_ctrls

,並將工程資料夾定位到「

…/visual c++程式/

實驗/實驗2

」。 ②單擊「確定」按鈕,在出現的

step 1

對話方塊中選擇「基本對話(框)」應用程式型別,單擊「完成」按鈕。 ③

在對話方塊編輯器中,單擊對話方塊工具欄上的切換網格按鈕

,顯示對話方塊網格,將對話方塊標題改為「使用控制項」。

④調整對話方塊的大小,刪除對話方塊中間的「

todo:

在這裡設定對話控制。」靜態文字控制項和「確定」按鈕控制項,將「取消」按鈕標題改為「退出」,並移至對話方塊的下方。 ⑤

向對話方塊中新增組框(

group

)控制項,標題設為「新增」,然後調整其大小和位置。 ⑥

新增乙個按鈕,標題設為「

課程資訊

」,id

設為idc_button_course。

⑦新增乙個列表框,取其預設

id號,去掉

sort

風格屬性。

3.新增並設計「課程資訊」對話方塊 ①

按ctrl+r

快捷鍵,彈出「插入資源」對話方塊,在資源型別列表中選擇

dialog

,單擊「新建」按鈕。 ②

將該對話方塊資源的

id設為

idd_course

,標題設為「課程資訊」,字型設為「宋體,

9號」。 ③

將ok和cancel

按鈕的標題改為「新增」和「取消」。 ④

開啟對話方塊網格,參看圖

2.2的控制項布局,為對話方塊新增如表

2.1所示的一些控制項。

2.1

課程資訊對話方塊新增的控制項

新增的控制項

id號標題

其他屬性

編輯框(

課程號)

idc_edit_courseno

——預設

編輯框(

課程名稱

)idc_edit_coursename

——預設

組合框(

所屬專業

)idc_combo_special

——預設

組合框(

課程型別

)idc_combo_type

——預設

編輯框(

開課學期

)idc_edit_open

——預設

旋轉按鈕

idc_spin1

——auto buddy

、set buddy integer

、right

對齊,其餘預設

編輯框(

課時數)

idc_edit_coursehours

——預設

編輯框(學分)

idc_edit_credit

——預設

⑤右擊新增的課程型別的組合框控制項,從彈出的快捷選單中選擇「屬性」命令,將其屬性對話方塊切換到

data

頁面,直接輸入內容,輸入一行後按

ctrl+return

鍵新增另一行。結果如圖

2.3所示。

圖2.3

課程型別組合框內容輸入⑥按

ctrl+w

快捷鍵或雙擊對話方塊資源模板的空白處,為

idd_course

建立乙個對話方塊

ccoursedlg。

⑦開啟classwizard

的member variables

頁面,看

class name

是否是ccoursedlg

,選中所需的控制項

id號,雙擊滑鼠。依次為表

2.2控制項增加成員變數。

2.2

控制項變數

控制項id

變數類別

變數型別

變數名範圍和大小

idc_edit_courseno

value

cstring

m_strno

idc_edit_coursename

value

cstring

m_strname

idc_combo_special

value

cstring

m_strspecial

idc_combo_special

control

ccombobox

m_combospecial

——idc_combo_type

value

cstring

m_strtype

idc_edit_open

value

byte

m_nopen

idc_spin1

control

cspinbuttonctrl

m_spinopen

——idc_edit_coursehours

value

intm_nhours

idc_edit_credit

value

float

m_fcredit

4.新增ccoursedlg類** ①

用mfc classwizard

為ccoursedlg

類新增wm_initdialog

訊息對映,並新增下列初始化**:

bool ccoursedlg::oninitdialog() ②用

mfc classwizard

為按鈕idok

新增bn_clicked

的訊息對映,並增加下列

**:

void ccoursedlg::onok()

m_strname.trimleft();

if (m_strname.isempty())

cdialog::onok();

}5.新增cex_ctrlsdlg程式** ①

按ctrl+w

快捷鍵,開啟

mfc classwizard

對話方塊,為列表框控制項

idc_list1

新增控制項變數

m_list

,型別為

clistbox。

②用mfc classwizard

為按鈕idc_button_course

新增bn_clicked

訊息對映,並新增下列**:

void cex_ctrlsdlg::onbuttoncourse() ③在

ex_ctrlsdlg.cpp

檔案的前面新增

cinputdlg

的標頭檔案包含:

#include "ex_ctrlsdlg.h"

#include "coursedlg.h"

④編譯執行並測試。

6.寫出實驗報告

分析上述執行結果以及思考與練習,寫出實驗報告。

思考與練習(1

)為ccoursedlg

類新增乙個公有型

cstring

成員變數

m_stroktext

,當通過

ccoursedlg

類物件將

m_stroktext

設為「修改」,

ccoursedlg

對話方塊中的「新增」按鈕標題變成「修改」,試程式設計實現。 (

2)由於每學期的一門課程學分一般不超過

6個學分,因此若將學分編輯框改為組合框,應如何修改和程式設計?

MFC控制項

1.mfc中的radio控制項是成組的,所以需要把radio的group屬性設為true,否則中右鍵 新增變數時會沒有radio控制項的id出現。2.mfc中的list control控制項出現不顯示資料的情況,那是因為list control控制項中的view屬性預設為icon,需要將view屬性...

MFC控制項

1 列表框 常用方法 addstring 在列表框最後新增列表項 insertstring在列表框中指定位置新增列表項 deletestring刪除一列表項 resetcontent清空列表項 findstring 查詢列表項 getcursel 返回當前選擇項的索引 setcursel 選擇某個列...

MFC控制項使用

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