今天專案做到一半,發現**已經很多了,總想著能不能在某些地方省略一些.於是發現到自己從控制項派生出的幾個類.我用他們動態建立出dialog中的元素.這樣做是很麻煩,但沒辦法,因為希望自己的作品能夠更出色,於是就這麼做了.因為我實在沒有找到乙個更好的解決辦法,也許是有,只是我不會.
但隨之而來的並不是定義時引數的煩瑣,而是想要獲取他們自己的通知時間.例如從clistctrl中派生的空間,想要響應它自己的lvn_itemchanged訊息怎麼搞定哪,最後終於成功了.其實很簡單.就是在要捕獲訊息的類中的標頭檔案中的新增乙個訊息響應函式原型例如 afx_msg void onlistctrl();
在實現檔案中用on_notify(lvn_itemchanged , 動態建立時分配的id , 函式名)
在把響應函式的實現加上就ok了
如果是乙個按鈕,同樣,.h中加上宣告
.cpp中用on_bn_clicked(id , 函式名)
其實和為靜態控制項新增的**相同.
因為我還是不會響應各工件的wm訊息,所以我還是決定用繼承,在類中定義wm訊息,函式中傳送乙個自定義訊息到要要處理訊息的視窗,然後在該視窗在定義響應該自定義訊息的函式.然後通過上邊的方法來建立出乙個功能豐富的dialog
如何動態建立按鈕,並響應訊息
如何讓動態建立的按鈕響應滑鼠雙擊?利用按鈕的bs pushbutton風格,具有該風格的按鈕被單擊時會發出wm command訊息,他的響應原理和用類嚮導定義的函式一樣。只不過它的響應函式原形,訊息對映以及函式實現需要你自己手動寫進去 例如 如 cbutton m btn 因為按鈕是顯示在對話方塊上...
C 動態建立按鈕及 按鈕的訊息響應
動態建立的按鈕 都會在訊息 oncommand 中得到處理,無論是什麼訊息,都會處理的 1 建立按鈕 複製 如下 cbutton btn new cbutton leuxserz btn create t 方法 ws child ws visible,crect 0,0,50,50 this,2 注...
響應樹控制項的訊息用ON NOTIFY
樹形控制項的訊息對映使用on notify巨集,形式如同 on notify wnotifycode,id,memberfxn wnotifycode為通知 id為產生該訊息的視窗id,memberfxn為處理函式,函式的原型如同void on tree nmhdr pnmhdr,lresult p...