2010-12-03 25 views
0

這應該是顯而易見的,但我找不到任何說明它的地方。如何將派生控件(「MyCEdit」)放到對話框或屬性頁上?

我想從CEdit派生一個MyCEdit,所以我可以重寫OnChar處理程序,並通過鍵盤輸入到編輯框做有用的事情。每個編輯框都有一個MyCPropertyPage(派生自CPropertyPage)的客戶區域,有幾個這樣的頁面組成一個用於顯示診斷的選項卡控件。我離開編輯框啓用,而不是隻讀(美學,而不是功能)。

在資源編輯器(或其他地方)如何告訴Visual Studio我希望某個編輯框是MyCEdit而不是CEdit?我希望只是在MyCEdit中重寫OnChar來攔截字符......還是我必須重寫OnKeyDown - 我已閱讀了一個關於此效果的建議,但沒有找到MS源文章詳細說明原因。

到目前爲止,我可以輕鬆覆蓋的唯一東西是MCPropertyPage :: OnChar ...但似乎被繞過,字符只是直接進入編輯框子。

回答

1

嗨,如果我明白你需要你可以添加簡單的編輯到你的頁面,然後添加控制變量,並在類名字段中寫入MyCEdit。並且不要忘記在MCPropertyPage的資源編輯器中設置父級通知選項。

+0

謝謝 - 現在就明白了。我的派生類還需要一個消息映射:BEGIN_MESSAGE_MAP(MyCEdit,CEdit),如果我只想處理類似字母的字符,OnChar就足夠了。爲了處理PAGE UP,箭頭鍵等,我必須使用OnKeyDown處理程序。我沒有改變任何東西從我的屬性頁上的父母通知的默認值,但「無父通知」設置已經是錯誤的。我正在使用VS 2005. – omatai 2010-12-05 21:30:18

相關問題