首页

还原窗口位置的微妙之处  

很多应用程序都实现了这样一个特性:它们会记录窗口关闭时最后在屏幕上的位置,并尝试在应用程序重新启动的时候恢复这些位置。如果只是简单的实现这个功能,则大多数开发者会无条件的记录窗口的最后显示位置,并在程序重新启动是恢复窗口到这个位置。 但是,这可能会给你的程序带来可用性方面的问题,此话怎讲? 如果用户运行了你的的程序的两个实例,则两个窗口最终会出现在屏幕上完全相同的位置。 除非用户仔细的观察了任务栏...

以其他组件为代价的性能提升不是好提升  

在操作系统的开发中,我们必须对性能有一个整体的看法。系统设计者的目标是:让整个系统运行得更快,同时在各个应用程序的运行速度上取得一定的平衡。 另一方面,应用程序往往对性能抱有自私的看法:”我会尽一切可能让自己跑得更快。对系统其余部分的影响不是我关心的。” 一些应用程序会将自己放入开机自动启动组中,以便更快地加载。 这并没有真正让系统运行得更快。 它只是在转移启动的阶段而已。...

为什么传递SPIF_SENDCHANGE标志SystemParametersInfo会挂起?  

如果你传递SPIF_SENDCHANGE标志给SystemParametersInfo函数,则它会向系统以广播的形式发送WM_SETTINGCHANGE消息,并将消息的wParam参数设置为你传递给函数的标志。例如,如果你调用: SystemParametersInfo(SPI_SETDOUBLECLICKTIME,500, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHA...

使用SystemParametersInfo访问用户界面设置  

SystemParametersInfo这个函数还挺有用,它可以用来以代码的方式访问操作系统中的用户界面设置,并且它是唯一一个可以用来修改设置的函数。在今天的文章中,我不会列出该函数支持的所有设置参数,如有需要,请直接出门左转看文档,那里才是你需要去的地方。我只是想说几条比较值得注意的: > SPI_GETICONTITLELOGFONT 此参数可以用来获取图标文本的字体信息。对应的,SPI...

2022-06-23

我的父母可能只是普通人。 我的妻子可能只是普通人。 我的孩子可能只是普通人。 我,可能也是普通人。
  • 阅读全文 |
  • 分类:流逝 |
  • 发表于:06月23日 |
  • 浏览:33 |
  • 评论已关闭 条评论

一个超时上下文菜单的实现  

和之前的超时对话框系列文章颇为类似,我们可以依葫芦画瓢实现一个超时上下文菜单,实现的手法更加简单一些。具体来说,我们使用了一个Windows消息 WM_CANCELMODE来关闭上下文菜单。 例子代码 在显示上下文菜单之前,我们创建了一个定时器。(这里有一个小细节,我们使用了线程定时器,以为你我们并未拥有任何窗口句柄,因此我们不知道应该使用哪个定时器ID) 如果定时器触发了,则我们通过定时器回调...

VS Code中的CMake工具新功能速览  

同志们,最新版本的CMake工具已经发布了,大家可以在VS Code Marketplace上下载安装,或者使用.vsix文件直接安装。我们的开发团队一直努力工作,致力于改进CMake的使用体验。今天我们来简单看看1.11版本带来的几项全新特性,请坐稳扶好了。 CMake任务提供者更新 我们添加了更多的用于构建任务的选项和cmake任务类型相关的命令,这样你就无须手动输入这些任务。通过任务,开发者...

说说模态化8:一个更好版本的超时关闭对话框  

在上一篇文章中,我们实现了一个基础版本的超时关闭对话框,但是我们提到那个版本有个限制,就是:它同一时刻,只能在同一个线程中使用。今天,我们来修改下代码,实现一个更好的版本,来去掉这个限制。 如果你还记得的话,上面说的限制的原因在于:我们将”对话框是否超时”这个标志变量保存为了一个全局变量。为了修复这个问题,我们将它保存到实例级别的位置,也就是所谓的一个”帮助窗口...

一种快速创建测试窗口的方法  

有时候,你可能想快速创建一个简单的窗口来测试某些功能,这个时候,你又不想花时间从头到尾一步一步的按标准流程来建立它。例如,你可能需要测试一小段DDE代码,或者只是简单地想测试一下你新实现的消息提示框。那么,有什么好办法吗? 有。 为了帮你省去创建窗口时繁琐的各项工作,你可以简单地注册一个名为”scratch window”的窗口类,然后根据需要对它进行简单的子类化(SubC...

Visual Studio新特性:串口监视器和Zephyr支持  

Visual Studio开发团队一直没有忘记搞嵌入式的老哥们。 最近我们引入了针对于嵌入式开发的两项新功能,分别是:串口监视器(Serial)和对Zephyr实时操作系统支持。 以上两项新功能可以通过Linux和嵌入式开发工作包来安装到Visual Studio v17.3 Preview 1上。另外对于Visual Studio Code,开发者可以通过嵌入式工具扩展(Embedded Too...