對話方塊管理器第八章:對話方塊中的自定義導航
有一些對話方塊會包含一些自定義按鍵導航,例如,屬性表控制元件(Property Sheet),你可以透過按下 CTRL + TAB 或者 CTRL + SHIFT + TAB 來切換不同的屬性頁面。如果要實現這樣的功能,僅僅靠IsDialogMessage是不夠的,你需要自己寫點程式碼才行。
我們先看看之前我們的對話方塊訊息迴圈的程式碼實現:
為了新增自定義導航,我們可以在IsDialogMessage呼叫之前,新增下面藍色的部分。
程式碼解析
當收到一條訊息時,在分發此訊息,甚至在IsDialogMessage之前,我們先檢查它是否為 CTRL + TAB 按鍵,如果是的話,我們將它看做是一個導航快捷鍵。
請注意,如果希望將這段程式碼用在非模態對話方塊上,則你需要注意一個細節,因為我們不希望佔用無模式對話方塊中現有的按鍵導航。請看下面修改之後的程式碼:
在後面的文章中,我們將會使用另外一種方法實現相同的功能,敬請期待。
總結
大部分人,都是使用滑鼠完成大部分日常任務。
按鍵鍵導航這個功能,很少有使用者會使用。但是,作為一個完美主義者,這個功能我一定會在TopomelBox中慢慢給加上。可以不用,但不能沒有。
滑鼠操作平易近人,但是操作效率上來說,還是沒有快捷鍵那樣快速高效暴力直接。比如,你經常會使用到的 CTRL + C 和 CTRL + V 這兩項技法。
正所謂:天下武功,唯快不破。
最後
Raymond Chen的《The Old New Thing》是我非常喜歡的部落格之一,裡面有很多關於Windows的小知識,對於廣大Windows平臺開發者來說,確實十分有幫助。
本文來自:《The dialog manager, part 8: Custom navigation in dialog boxes》