为什么向导式对话框中的取消按钮始终可用

news2024/12/24 2:10:31

PropSheet_SetWizButtons 是一个宏,其定义位于 PRSHT.H 头文件中,实际上,它只是调用了 PostMessage 函数来向目标窗口发送 PSM_SETWIZBUTTONS 这个消息,仅此而已。

如果你亲自上阵体验一番,就会发现有这么一个问题(特性): 使用这个宏,可以设置向导对话框中的绝大多数按钮的状态,如启用或者禁用,但是唯独这个取消的按钮,似乎无论如何,都不能禁用掉它。这就比较难以捉摸了!

为什么不能通过程序的方式禁用对话框上的取消按钮或者 “X” 关闭按钮?这里有什么道道吗?

原因在此,一句话:因为我们的用户不喜欢。
通过我们的用户的使用反馈,我们得知,如果在向导式对话框里的按钮是禁用状态,他们会感到有压力和不知所措。

如果我们站在用户的角度来思考:你打开了向导对话框开始了一项操作,向导问了一系列的问题,你也如实作答了,然后,向导突然问了一个你无法回答的问题,或者,你意识到这个操作不是你想要的,又或者,这项操作可能会耗时很长一段时间。
你希望取消这个操作并关闭对话框。

问题来了,对话框的取消按钮是灰色的,也关闭不了。你陷入了迷惑和不知所措之中。

你仿佛听到了空中飘来一段声音:”哈哈,你现在必须完成我交待的步骤。你被困在这儿了,我是说,被困在这儿出不去了,哈哈哈”

总结

任何时候,都不要对你的用户做那样残忍的事情,这只会让你的用户心生绝望并远离。
始终在用户界面上开放一个 [取消] 入口,人生没有后悔药,但是软件有。用户应该始终可以取消他准备做的事情。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why can’t I disable the Cancel button in a wizard?》

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++ stl 之vector使用

参考:https://www.runoob.com/cplusplus/cpp-stl-tutorial.html “C STL(标准模板库)是一套功能强大的 C 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向…

特征向量可视化01_tsne_pca

在学习机器学习或深度学习基础知识的同时训练模型是一个非常有指导性的过程。该数据集易于理解且格式适当,可供您使用。然而,当您走进现实世界并尝试解决行业或现实生活中的挑战时,数据集如果一开始就不存在,通常会很混乱。理解为…

uniapp怎么把px转换成对应手机型号的rpx

首先获取系统手机屏幕的宽度系统信息的概念 | uni-app官网,然后根据公式转换 rpx 750*元素 B 在设计稿上的宽度为 多少px/手机屏幕的宽度 详见:CSS 支持 | uni-app官网 如下为把宽度为1px的转成对应手机型号的rpx uni.getSystemInfo({success(res) {co…

网络营销VS传统营销有什么区别?

随着互联网的普及和发展,网络营销已经成为企业营销的重要手段之一。相比传统营销,网络营销具有更多的优势和特点。本文将从市场环境、营销手段、成本效益等方面,分析网络营销与传统营销的区别。#网络营销# 一、市场环境不同 传统营销主要是通…

华为OD机试真题 Python 实现【查找单入口空闲区域】【2022 Q4 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 给定一个 m x n 的矩阵,由若干字符 ‘X’ 和 ‘O’构成,’X’表示该处已被占据,’O’表示该处空闲,请…

[pyqt5]动态加载ui文件并给菜单的一个子菜单添加触发事件

场景:大家都知道如果直接将ui文件转成py文件后,如果产品经理要你加一些界面控件,你就得改转换后代码这样很麻烦,我们可以直接加载ui文件,然后编写触发事件,因此写了一个简单案例,证明切实可行&a…

微服务:Springboot集成Hystrix实现熔断、降级、隔离

文章目录 前言知识积累Springboot集成Hystrix1、maven依赖引入2、application开启feign的hystrix支持(客户端配置限流降级熔断)3、入口类增加EnableFeignClients EnableHystrix 开启feign与hystrix4、feign调用增加降级方法服务端配置限流降级熔断(选择使…

stm32 使用keil无实物(软件)仿真,虚拟串口通讯

准备 1.keil 2.vspd虚拟串口 3.sscom串口助手 4.CubeMX //哪里报错no ‘read‘ permission,把哪里map一下 map 0x40000000, 0x400077FF read write // APB1 map 0x40010000, 0x40014BFF read write // APB2 map 0x40020000, 0x4007FFFF read write …

​​国风写实虚拟人频“营业”,塑造国潮文化元宇宙入口

近几年,随着时代话语权逐渐递交给Z世代的年轻人,文化自信成为了主流审美,国风虚拟人激发了年轻人心中的民族文化自豪感。 国风虚拟人谷小雨频营业,发布了“中文之美”虚拟人动画,穿越古今四时感受“雨”字流转之美&am…

MMdetection框架速成系列 第04部分:配置文件详细解析+文件结构剖析+Config类核心实现

🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗 MMdetection框架速成系列 MMdetect…

简单回顾一下kafka的学习

简单回顾一下kafka的学习 WhatBrokerControllerPartitionReplicationTopicProducerConsumer Why为什么有多个分区为什么有副本 How搭建集群Java简单使用ProducerConsumeroffset提交方式自动提交 - 默认手动提交 消费者poll消息的过程指定分区消费消息回溯消费指定offset消费新消…

Firefly

Firefly(流萤): 中文对话式大语言模型在本文中,笔者将介绍关于Firefly(流萤)模型的工作,一个中文对话式大语言模型。https://mp.weixin.qq.com/s/TX7wj8IzD_EaMTvk0bjRtA一个支持中文的176B开源基础模型BLOOM:从数据源…

git merge 和git rebase的区别

文章目录 1. 概念2. git merge2.1. 示例 3. git rebase3.1. 示例 4. 总结 1. 概念 在Git版本控制系统中,有两种方式可以将一个分支的更改合并到另一个分支:git merge 和 git rebase。虽然它们都可以完成相同的任务,但它们的实现方式有所不同…

faster-rcnn.pytorch项目环境配置(从0到1)

faster-rcnn.pytorch项目环境配置(从0到1) 其实pytorch版本和CUDA版本高,都没有关系!!!都可以适配,显卡30系、20系都没关系,都可以用! 下面我将在AutoDL平台上&#xf…

Mapbox 实现热力图教程

热力图在 maobox 中属于专题图的一种,他通过点的颜色和权重 来渲染点和点周围的指标情况。本文来跟大家分享一下如何使用 maobox 实现热力图的功能。 我们以全国十大名茶产区的温度指标为例,来做一个像上图这样的效果, 首先要有相关的点数据: var tentea = {type: &qu…

某制药CDMO头部企业IPD变革项目启动会顺利召开

近日,某制药CDMO头部企业IPD流程变革项目在重庆顺利召开。为进一步优化公司研发管理体系、梳理正向研发理念及文化、培养专业人才,经过深入调研后,某制药CDMO头部企业聘请科济管线首席顾问江新安教授及其团队,为该企业作IPD项目变…

EMAS热修复Sophix适配App加固的技术方案

一、问题描述 某阿里云EMAS客户的APK基于最新的线上版本发布了第十个补丁,发布1小时后在崩溃检测平台收集到crash日志,并收到用户反馈:部分手机上的APP会闪退。 客户开发人员紧急上报EMAS技术支持,双方沟通后初步判断是补丁加载…

使用rewriteBatchedStatements属性优化Mybatis-Plus批量插入数据

前言 由于项目是使用MyBatis-Plus开发的,用起来也确实比较方便,尤其是service层封装好的一些通用的增删改查方法,省去了不少sql语句的书写,但是在开发过程中,我也发现MyBatis-Plus的saveBatch批量插入方法针对MySQL数…

MAYA横纵拉窗帘

设置移动动画 向上拉帘

File System Access API 浅析

前言 最近在用python(tkinter GUI库)做一个小工具时,选择文件后可以获得其真实路径。而前端(浏览器)出于安全和性能等方面的考虑,对文件的操作是非常局限的。 在HTML5标准的File API之前,纯前…