解釋了訊息分派機制後,接下來我們開始介紹winx的視窗類。為了產生比較的效果,我決定從之前我寫的「sw系統」的視窗類講起。在你理解了sw系統的視窗類後,我們再來看6年後winx中的視窗類在設計上發生了什麼樣的變化。——這自然也是我個人在視窗類觀念上的改變。
1、sw系統的「hello,world!」程式
類說明:
shwnd:對windows視窗控制代碼的簡單包裝
sobject:類庫的根
sstring:字串類
sarchive:文件類,用於存檔
sh***ctrl:各種控制項
swnd:視窗類基本類
shdc:對dc控制代碼的簡單包裝
**sg:訊息類
ssubclass:派生子類
sdlg:對話方塊類
**dichild:mdi程式文件視窗
注:sw系統中對話方塊不分模態/非模態,只有在呼叫時才有區別。
如果希望是模態的:
hwndparent.execdlg(new s***dlg); // 呼叫dialogboxparam 或:
hwndparent.execute(new s***dlg, sw_show);
// 使用sw系統的訊息迴圈
如果希望是非模態的:
hwndparent.insert(new s***dlg);
// 像普通視窗一樣插入到父視窗中即可
3、獨特的視窗(檢視)模型
注: 請注意術語上的變化,由於sw系統在windows下實現,使用了windows中的一些術語。在這裡檢視被稱為視窗,事件被稱為訊息。
視窗應該具備哪些行為才合理?象顯示/隱藏、選擇(啟用)、移動、改變大小、關閉等這些基本行為是很容易想到的。sw系統與經典應用程式框架如mfc不同的是,它引入了另兩個非常有用的方法:
1)insert操作:
sw系統中,視窗都通過insert操作插入到父視窗中。
2)execute操作:
應用程式框架設計 2 SW系統的視窗類
解釋了訊息分派機制 後,接下來我們開始介紹winx的視窗類。為了產生比較的效果,我決定從之前我寫的 sw系統 的視窗類講起。在你理解了sw系統的視窗類後,我們再來看6年後winx中的視窗類在設計上發生了什麼樣的變化。這自然也是我個人在視窗類觀念上的改變。1 sw系統的 hello,world 程式 ...
框架設計 CLR寄宿和應用程式域
概述 認識什麼是clr寄宿和應用程式域?clr寄宿 允許任何應用程式域使用clr的特徵。允許已有的應用程式至少區域性使用託管 程式設計,並為應用程式提供通過程式設計支援自定義和可擴充套件性的能力。應用程式域 允許第三方信任的 在已存在的程序中執行,並保證應用程式的資料結構,以及安全上下文不被利用或不...
應用程式框架實戰六 應用程式框架的特點
之前說過,net framework為所有.net程式設計師提供底層支援,第三方開源框架建立在.net framework的基礎上,專門解決某些特定問題,而應用程式框架則建立在.net framework和第三方框架的基礎上,為專案開發的方方面面保駕護航。它們的作用雖然都是幫助程式設計師更好的建立應...