專案第乙個步驟:
控制項使用
實驗目的和要求(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是用來定位及定義大...