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