對話方塊管理器第八章:對話方塊中的自定義導航

有一些對話方塊會包含一些自定義按鍵導航,例如,屬性表控制元件(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》

對話方塊管理器第八章:對話方塊中的自定義導航