首页

滚动条第四章节: 添加一个自动比例滚动条  

自动比例滚动条 为了得到一个自动比例滚动条,你需要告诉Windows滚动条所覆盖区域的最大值和最小值,当前滚动条的位置以及滚动条滑块(Thumb,也称”页大小”)的大小。 一个比较麻烦的方法,是当显示区域最大值是可变的情况。这和GDI中的坐标计算有点不同:GDI中,一段范围,是不包含终结点的。这会导致在代码中出现类似”-1″这样的代码,用来对公式做出...

关于上一篇文章中提到的家庭作业  

今天来回答在上一篇文章中提到的”家庭作业”。 关于iMin的计算 iMin表示绘制区域的最小索引,所以简单的使用简单的截断除法就可以计算出来。 关于iMax的计算 关于iMax的计算,可以有两种不同的方法。 第一种方法 计算第一个不可见行(注意这里的”不”字)的向上进位值(Roundup)。还记得吗?一个矩形的坐标定义中,是不包含终结点(endpoi...

为什么XP中新开始菜单不使用”个性化菜单”  

问题 有人曾经问我一个问题:我想在Windows XP的开始菜单中使用个性化菜单(Intellimenus),应该怎么做? 我的回答是这样的 让我们先来假设:XP的开始菜单启用了Intellimenus。 你经常使用的APP是5个,其他的APP不是经常被使用。(因为曾有研究表明,一个典型用户日常最经常使用的APP个数是5个) 这些经常使用的APP会被放到MFU(最近经常使用的项目)中。 有一天,你...

滚动条第三章节: 优化我们的绘制代码  

之前代码的问题 从之前的代码中我们看到,在我们的绘制函数里绘制了所有的100行文本。这会带来一个问题:在一个窗口的可见区域里,可能只有部分行才会真正地显示出来(但我们全部绘制了),如果我们绘制的是大量的文本行,或者绘制单个文本行需要耗费比较长时间时,这会带来严重的性能问题。 如何解决呢? 我们想到的优化点:通过优化绘制部分的代码,实现只在窗口可见区域绘制文本行,对于其他无关区域不进行绘制,因为用户...

为什么Windows没有一个所谓的”专家模式”?

我们经常会收到如下的用户反馈 “你们是不是可以在系统的某个地方设计一个滑动栏?比如,一个可以调节系统性能的滑动栏,它会呈现出一个范围,最左边是所谓的”新手”模式,最右边则是”专家”模式。在新手模式下,所有针对新手的系统设定将全部开启,而在”专家”模式,所有针对”Geek”的设定将全部开启。如...

滚动条:第二章节  

充满细节的滚动条 对于Windows开发者来说,与滚动条相关的开发应该不是很困难,因为它的基础原理不是很困难,但是围绕滚动条的还有许许多多的小细节问题需要解决。如果你不能彻底把这些细节问题搞明白,那么你所编写的程序会看来有些怪异,甚至你自己也不能用语言表达出来:它就是在某些地方有点怪怪的 ,就像一些背景的噪音一样让你感觉到不痛快。将这些细节问题弄明白,有助于你的程序干净,爽朗。 基础程序 让我们从...

关于Tweak UI 2.10的更多问题与解答  

我目前正在尝试在编程文章(我会在这些文章中尽量教点什么东西)和随机性文章(这些文章里我会随便吹上一会牛或者讲讲小故事)上做些切换。今天的这篇文章,属于后者。 问题:为什么当我尝试在一个不支持的系统上运行Tweak UI时会出现一个完全不那么显而易见的错误提示:不能再kernel32.dll中定位入口点GetDllDirectoryW? 解答:这个是为了确保在一个不受支持的操作系统上绝对不能运行它。...

让我们从头开始搞一个程序,好吗?  

从头开始建立一个代码模板 有时候,我需要在文章中展示一个编程概念,同时需要使用一个比较完整的程序代码。为了避免每次都重复这些程序代码中的通用部分,我这这里贴出了一份完整版代码,我们可以基于这份模板来扩展出其他有用的示例代码。 为了更好的讲解一些概念,我在这里并没有使用C++类来实现,并且我将变量都定义成了全局的。我想,在真实的项目中,应该像MFC所展示的那样,通过类来封装一个窗口,而不是像以下代码...

为什么关机的时候需要按下”开始”按钮?  

一个拷问灵魂的问题 为什么关机的时候需要按下”开始”按钮? 短答案 你关闭你的车子的时候,不也需要按一下一键启动开关吗? 长答案 在早期时候,任务栏是没有开始按钮的(事实上,早期的任务栏也不叫任务栏)。 相比开始按钮,早期的设计是这样的:在桌面的左下角会有三个按钮,分别是”系统”(其图标是Windows徽标),”查找”(其图标...

Tweak UI 2.10  

有关Tweak UI的背景知识 Powertoys for Windows XP是微软发布的一款专门用于Windows XP的免费系统工具,利用这个不到1M的软件,我们可以调整多达数十种Windows XP中的隐藏设置(这些设置,通常是需要修改注册表的),还增加了多种快捷且使用方便的有趣功能。其中包括设置IE工具栏背景,自定义系统文件夹路径,快速用户切换以及任务栏增强程序等。只要你使用过一次,一定...