1. 程式人生 > >子視窗與父視窗之間訊息

子視窗與父視窗之間訊息

一.子視窗控制元件向父視窗傳送訊息

a.由於子視窗控制元件都是系統內部定義的,即訊息處理回撥函式和視窗類由系統部署

b.子控制元件產生相對應控制元件的所屬事件時,(系統會處理子控制元件)並向父視窗傳送訊息(可能是子控制元件回撥訊息處理函式內部處理的,暫不清楚),都是傳送的WM_COMMAND訊息,之後系統版本又增加了WM_NOTIFY訊息

二.父視窗子視窗控制元件傳送訊息

a.父視窗傳送給子視窗控制元件的訊息不僅有WM_開頭的標準訊息,還會有各種控制元件單獨定製的訊息

可以sendMessage傳送訊息到子控制元件

比如:

在視窗上點單擊了下按鈕,系統產生BM_CLICK訊息,訊息迴圈找個此訊息後,然後由dispatch到系統內部,系統呼叫按鈕控制元件回撥

訊息處理函式(系統內部定義的按鈕視窗類,有按鈕回撥函式),按鈕控制元件回撥函式接受到這個訊息之後並處理,就知道了自己被單擊了,然後按鈕控制元件就立刻給父視窗傳送WM_COMMAND訊息,從而父視窗WM_COMMAND會得到BN_CLICK通知碼。

一般我們只在父視窗(主視窗)的WM_COMMAND訊息處理按鈕被單擊後如何處理(也就是我們寫按鈕單擊事件處理)

也可以自己子類化按鈕控制元件

---------------------------------------------------