聊聊為什么向導式對話框中的取消按鈕始終可用
PropSheet_SetWizButtons 是一個宏,其定義位于 PRSHT.H 頭文件中,實際上,它只是調用了 PostMessage 函數來向目標窗口發送 PSM_SETWIZBUTTONS 這個消息,僅此而已。
如果你親自上陣體驗一番,就會發現有這么一個問題(特性): 使用這個宏,可以設置向導對話框中的絕大多數按鈕的狀態,如啟用或者禁用,但是唯獨這個取消的按鈕,似乎無論如何,都不能禁用掉它。這就比較難以捉摸了!
為什么不能通過程序的方式禁用對話框上的取消按鈕或者 “X” 關閉按鈕?這里有什么道道嗎?
原因在此,一句話:因為我們的用戶不喜歡。通過我們的用戶的使用反饋,我們得知,如果在向導式對話框里的按鈕是禁用狀態,他們會感到有壓力和不知所措。
如果我們站在用戶的角度來思考:你打開了向導對話框開始了一項操作,向導問了一系列的問題,你也如實作答了,然后,向導突然問了一個你無法回答的問題,或者,你意識到這個操作不是你想要的,又或者,這項操作可能會耗時很長一段時間。你希望取消這個操作并關閉對話框。
問題來了,對話框的取消按鈕是灰色的,也關閉不了。你陷入了迷惑和不知所措之中。
你仿佛聽到了空中飄來一段聲音:”哈哈,你現在必須完成我交待的步驟。你被困在這兒了,我是說,被困在這兒出不去了,哈哈哈”
總結
任何時候,都不要對你的用戶做那樣殘忍的事情,這只會讓你的用戶心生絕望并遠離。始終在用戶界面上開放一個 [取消] 入口,人生沒有后悔藥,但是軟件有。用戶應該始終可以取消他準備做的事情。