程式的建立步驟:
1建立框架和對話方塊; 2
建立對話方塊對應的對話方塊類(
cpassworddlg
,由cdialog
派生)。並為此對話方塊類增加成員變數(用於獲取放置於編輯框中的密碼內容
m_strpassword);
3修改對話方塊類的建構函式,對新增加的對話方塊成員變數賦初值; 4
在程式主檔案
password.cpp
中增加對話方塊標頭檔案(
passworddlg.h
);並在初始化函式(
)中完成:建立乙個新的對話方塊、呼叫並顯示對話方塊、新增業務邏輯——獲取使用者的輸入(密碼)並判斷; 5
在框架顯示檔案(即密碼輸入成功或者輸入失敗情況下框架要顯示的內容,在此為
passwordview
)中,新增顯示畫面(在此,首先在標頭檔案
passwordview.h
中增加新的字串變數以顯示要列印的文字,然後在
passwordview.cpp
中增加顯示這些文字的**)。
本節重點:
1程式的入口點是程式主檔案中的
建立**(在此即為
password.cpp
檔案中的
語句)。所以,對話方塊的建立、呼叫與顯示最好位於
的初始化函式
initinstance()
函式之中。 2
基本的類結構:
是程式的業務邏輯類(程式的入口點在此);
c***xxdlg
是程式的對話方塊類;
c***xxview
是程式的檢視類,即展示給使用者的框架介面;
cmainframe
是程式的框架類。 3
c***xxdoc
類的作用??? 2.
按鈕、列表框和組合框
程式的建立步驟:
1建立專案工程,本例項為單文件,並且檢視類由
ceditview
派生;
2新增對話方塊資源,並將需要的各種控制項新增到對話方塊中; 3
通過「view|classwizard
」建立對話方塊類(注意類名前一般加c)
cregister
,並為對話方塊中的各個控制項新增訊息處理函式; 4
繼續為對話方塊中的各個控制項新增成員變數; 5
在對話方塊類的標頭檔案(
cregisterdlg.h
)中新增乙個公有變數
cwnd* m_pparent
,以用來指明該對話方塊的父視窗;然後在對話方塊類的初始化函式
oninitdialog()
中為「科室」列表框新增內容;再在對話方塊的建構函式中為對話方塊的各個控制項賦初值,並指明對話方塊的父視窗是工程的主框架視窗;再在對話方塊的「進入」按鈕的訊息處理函式
onin()
中新增業務邏輯,包括讀取並判斷使用者的輸入、顯示使用者的輸入等等; 6
在框架視窗增加乙個選單項用於呼叫對話方塊的呼叫,方法類似於前面所述,並修改訊息處理函式以符合要求。
本節重點:
1類名的前面一般都加乙個大寫的
c(比如
c***dlg
),而檔名則不用; 2
為控制項增加相應的成員變數和訊息處理函式時,要明確是為哪個控制項增加(是框架的選單?還是對話方塊);如果該控制項的類還不存在,則需要首先建立這麼乙個類,這一步可以通過「
view|classwizard
」調出類嚮導完成。為控制項增加相應的成員變數和訊息處理函式的步驟為:選擇專案、選擇類、選擇訊息名稱(我的理解,即為物件
id),以及選擇訊息處理函式(我的理解,即為
messages
)。在完成這幾步後,即可在
member function
中看到新增的結果。最後,使用者可以對相應類的相應函式(即訊息處理函式)進行修改,以滿足使用者的需求。 3
模式對話方塊的啟動示例:
cregisterdlg dlg(this); dlg.domodal();
注意,this
表明這個對話方塊的父視窗是工程的框架;而
domodal()
是專門用來啟動對話方塊的函式; 4
注意類的
initinstance()
函式的返回值是個布林值,(
),所以只有當
返回值為真(當然,框架的啟動也必須正確)時才能正常顯示程式的框架,否則不行。至於首先出現對話方塊還是主框架,則要看是對話方塊啟動在前,還是框架的顯示在前。 3.
查詢、替換對話方塊
程式的建立步驟:
1建立工程的主框架; 2
建立非模式對話方塊資源,即「查詢與替換對話方塊」。業務邏輯所需的控制項為對話方塊控制項、對話方塊中負責接收使用者輸入的查詢編輯框和替換編輯框; 3
建立與上述三個控制項相關的類,在此為
creplacedlg
類;以及與兩個編輯框相關的變數:
cstring
型別的m_strfind
和m_strreplace
,並增加相應的預設訊息處理函式; 4
在選單資源中增加用以啟動這個查詢替換框的選單選項,並增加此選單的使用者自定義的訊息處理函式(注意該訊息處理函式位於
c***xxview
類中); 5
完成這個查詢與替換對話方塊物件的外圍及初始化準備工作:首先要明確這個對話方塊是由
c***xxview
類(其中的選單項)啟動的(第
6步),並在
c***xxview
類中完成對話方塊的初始化工作(第
7步)和響應選單項命令的訊息處理函式(第
8步); 6
為c***xxview
類增加乙個
creplacedlg*
型別的成員變數
dlg,用於指向這個對話方塊;
7在
***xxview.h
標頭檔案中申明兩個類:
class creplacedlg; class creplacedoc;
在***xxview.cpp
中,首先增加標頭檔案
replacedlg.h
:#include 「replacedlg.h」
,並在c***xxview
類的建構函式中給第
5步定義的新成員變數賦初值為
null;
8修改第
4步中的自定義訊息處理函式:判斷是否已存在這麼乙個對話方塊,若已有,則啟用(
dlg->setactivewindow();
);否則,先建立(
dlg=new creplacedlg(this); dlg->create(idd_replace,this);
),再顯示此對話方塊(
dlg->showwindow(sw_show));
9最後編寫完成查詢與替換對話方塊物件,包括業務邏輯:修改第
3步中所增加的預設訊息處理函式,先為
creplacedlg
類增加乙個用以指向父視窗的
cwnd*
型別的成員變數,再改寫
creplacedlg
類中的oncancel()
函式、onok()
函式和postncdestroy()
函式。注意在
oncancel()
函式中要完成將對話方塊指標賦空和關閉對話方塊視窗的任務,在
postncdestroy()
函式中刪除對話方塊物件,在
onok()
函式中完成業務邏輯。
本節重點:
1非模式對話方塊的建立與銷毀:
creplacedlg* dlg=new creplacedlg(this); dlg->create(idd_replace,this);dlg->showwindow(sw_show);
銷毀工作包括對話方塊指標賦空、關閉並刪除對話方塊視窗。 4.
進度條和滑尺
程式的建立步驟:1
本節重點:
1建立使用者自定義的預設檔案儲存格式:在
stringtab
資源目錄下,雙擊開啟,修改
idd_mainframe
,改為:
***/n/n***/n
檔案格式說明
/n.xx/n***.document/n*** document
,其中,檔案格式說明為使用者對預設檔案格式的說明和註解,
.xx為使用者自定義的檔案格式,其餘保持不變即可。
VC學習筆記
1 全域性變數和類在入口函式前執行。2 lpctstr為長字串,賦值要用l string 的格式。3 新增和刪除成員函式都是在類屬性裡操作的。4 vs2008對選單的設定都是在屬性裡,新增command訊息也是在相應類的屬性裡。5 settimer 可以隨時使用。設定之後便可以加訊息處理。6 在標頭...
VC 學習筆記(二)
1.c語言的結構體是不能有成員函式的,但是 c 中可以的。這樣的話 c 中的結構體和類的作用是相同的,但是 c 中的結構體和類也是有區別的區別就是類可以定義其訪問許可權,而結構體不同,不能定義其訪問許可權。結構體和類在 c 中是可以通用的。2.類是抽象出一些基本屬性,物件是具有具體屬性值。物件是具體...
VC 學習筆記 四
messagebox button bination ids mb abortretryignore abort,retry,ignore mb ok ok mb okcancel ok,cancel mb retrycancel retry,cancel mb yesno yes,no mb ye...