應用程式框架設計 2 SW系統的視窗類

2021-04-12 12:34:44 字數 1088 閱讀 4421

解釋了訊息分派機制後,接下來我們開始介紹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和第三方框架的基礎上,為專案開發的方方面面保駕護航。它們的作用雖然都是幫助程式設計師更好的建立應...