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