首页

VS Code C++ 开发:入门和 IntelliSense 配置  

你是否在满天星空下琢磨如何在 VS Code 中配置用于 C++ 开发的智能感知功能(IntelliSense)? 你是否想知道,有没有之中最简单的方法来运行你的 C++ 代码? 好消息是:我们在 C++ 扩展中添加了一些新功能,有了这些好东西,你可以更加轻松从容的配置智能感知功能,并快速上手创建一个 C++ 新项目。 在今天的文章中,我将会讲解使用 C++ 扩展来进行 C++ 快速入门,配置智能...

用户体验设计小知识:勾选框使用细节  

在之前的一篇文章中,我们学习了一个用户体验设计小规则:不要在帮助信息中放置过多的容易误导用户的内容。 同样的,在对话框的交互设计上,我们也需要遵循同样的原则。 例如,我们设计了一个对话框,上面有一个勾选框,勾选框的内容是:关闭 XXX 功能。 请注意,这里的勾选框采用了一种所谓的”否定式”设计,这会让用户陷入一种逻辑迷宫之中。 正确的勾选框文本应该是一种”肯定式...

关于 GETDISPINFO 通知的详细理解  

你可能会经常看到这样的通知消息:XXN_GETDISPINFO,是不是有点印象了? 这个消息的使用场景:当控件要求其父窗口生成(标记为延迟呈现的)信息时,将使用这个 XXN_GETDISPINFO 通知,这些信息可以通过 LPSTR_TEXTCALLBACK 等来显式生成,也可以通过作为所有者数据控件隐式生成。是不是有点绕? 事实上,控件实际上只是请求有关条目信息的代码(通过类似 LVM_GETI...

是时候丢掉 DDE 了  

有人问我这样一个问题: “作为一名应用程序开发者,如果希望和外壳(Explorer/Shell)打交道,我可以直接忽略掉 DDE 吗?” 此问题的答案是:是的,完全没有任何问题。虽然在发明它的 16 位 Windows 协作多任务世界中,它是一个合理的解决方案,但向 32 位 Windows 的过渡对 DDE 来说并不是一件好事。 具体来说,依靠广播来建立初始 DDE 对话...

Visual Studio 新特性:对 include 指令进行智能诊断  

今天,我们很高兴地宣布新功能:#include 语言智能诊断。 此功能自 Visual Studio 2022 v17.9 预览版2 中可用。通过此新功能,您可以获取到有关每个 include 的引用和生成时间的详细信息,从而更好地了解 #include 指令的行为。 要开始使用此功能,请通过在编辑器中执行右键单击以显示上下文菜单来激活 #include 诊断。然后,导航到“包含指令”选项,然后...

关于 LockWindowUpdate 的最终总结  

经过前面两篇文章的”洗礼”,我想,你应该知道了在何种情况下应该使用 LockWindowUpdate。 但接下来我要告诉你的是为什么不能使用它,即使是用于它本身的预期目的。 让我们回到古老的旧时代,那个时候,LockWindowUpdate 刚刚被创建出来。 在 16 位 Windows 年代,特别是 Windows 3.1 版本时期,内存是昂贵的。视频驱动程序的功能非常有...

Visual Studio 2013 “即将退休”  

新年快乐! 这也是向各位开发者提醒 Visual Studio 支持生命周期中即将到来的好时机。 对 Visual Studio 2013 的支持即将在今年(2024年)的4月9日结束。如果你正在使用旧版本的 Visual Studio,我们强烈建议您升级您的开发环境到最新的 Visual Studio 2022,以保持最优的生产力。 另外,Visual Studio 2019将于今年(2024年...

什么情况下不应该使用 LockWindowUpdate ?  

在之前的文章中,我们将了解了 LockWindowUpdate 应该在什么场景下使用,也就是拖动的场景。 今天,我们来看看 LockWindowUpdate 被误用的一些场景。 人们看到 LockWindowUpdate 的“您锁定的窗口将无法重新绘制自身”行为,并将其用作 WM_SETREDRAW 消息的一种懒惰版本。 尽管发送 WM_SETREDRAW 消息实际上并不比调用 LockWindo...

在什么情况下才需要调用 LockWindowUpdate ?  

在上一篇文章中,我们了解了 LockWindowUpdate 的工作原理,今天这篇文章我将会讲讲这个函数的用途。 实际上,LockWindowUpdate 的设计初衷可以简化为一个词:拖动。关于这个话题,我先按下不表。 LockWindowUpdate 函数允许应用程序临时性地接管绘制窗口的责任。 当然,为了做到这一点,你必须阻止窗口过程(或其他任何人)进行正常的绘图活动;否则,两段代码(通常绘制...

深入理解 LockWindowUpdate: 该函数的作用  

今天说说被误解的 LockWindowUpdate 。 这是 LockWindowUpdate 系列中的第一篇,我将会讲讲它的作用、用途以及(也许最重要的是)对它的误用。 LockWindowUpdate 的作用非常简单。 当一个窗口被锁定时,所有试图绘制它或其子窗口的尝试都会失败。 窗口管理器不会进行绘制,而是记住应用程序尝试绘制到窗口的哪些部分,当窗口解锁时,这些区域将失效,以便应用程序获得另...