我了解mfc/win32程序后,发现vc++编程很难。你需要了解windows api都是干什么的,并且理解窗体机制,绘制机制,消息机制,各种这门编程的底层原理,你才能尽可能的把程序开发成你想要的样子。你需要把整个编程都研究明白了。否则就什么也不懂。
如果要实现托盘图标,需要遵守一定的规则,去注册托盘图标,还有消息。任何功能的实现,取决于记忆。资料和理解,非常的麻烦。你需要记住那一系列的函数是干什么的,怎么用。我使用gdi绘图函数画一个饼图,就耗费了半天时间研究,绝对不会简单到一个函数调用,设置好起点和角度,直接绘制成功。而是要研究包括窗体绘制原理在内的一系列道理。理解一些坐标系知识之类的东西。通过数学计算,手动绘制出来。如果你对整个编程系统不了解,你将寸步难行。连画一个饼图都画不了。
并且我发现windows系统的窗体,以及任何地方都可以通过windows api被其它软件任意修改。可以dll注入来实现任何你想要篡改的功能。监测你的网络流量,监听你的按键。
我本来开发了一个流量悬浮窗小程序,我想添加一个检测每个程序网速的功能,没想到这要到驱动层上去开发,去注入相关的dll文件,修改收发函数,相当于修改了这个操作系统。我尝试用自带的iphlper或者pdh库,但是他们都没有对应的功能。我又想把它嵌入到系统任务栏里,结果就是需要获取windows任务栏窗体,手动的去修改和调整这个窗体。我感觉到烦躁并放弃了这两个功能。
操作系统应该和其他程序解除耦合,不应该让其它的程序随意的修改自己,最多可以提供一些接口来实现个性化的插件。而windows就很可笑,只要你会windows api,你可以用内存函数随意的修改其它的程序的数据,篡改其它程序的界面,所有的窗体都统一的对待不加以保护。可以修改系统程序的显示。篡改系统dll函数。整个系统的组件互相依赖,像树根一样交错缠绕。一点都不安全。
只要你是高手,能把系统文件管理器给它添加上标签页功能,还有其它的功能。而且这对于windows都是合法的修改。太可笑了。
微软做的vc++和windows,如果你想用他们做出程序来,等于凭着你的理解,在修改编程语言的运行机制和系统本身。因为他们根本就不具备那些功能,但是你可以篡改运行机制、篡改系统的办法实现。真可笑。
windows编程不是编程,是理解后的篡改。感觉windows编程是一个不可扩展的东西,你只能在上面修改运行机制来达到想要的功能。
对应用的限制是必须的,windows却做不到。能让其它应用程序随意控制系统的表现和其它程序的数据,连安装和卸载也是应用程序自己随意的进行操作。修改注册表信息。简直是乱七八糟。看看其他的操作系统,比如android系统,谁见过有哪个application能随意修改Android的菜单栏样式吗,哪个application能够随意控制其它的application?想达到那个效果只有黑客手段,使用root权限和xposed框架修改操作系统层。我就说windows就是病毒的天堂。毫无安全性,只要我是高手,我查看你运行了什么程序。麻木你的电脑,篡改程序数据轻而易举。
我更喜欢的是提供积木的操作系统编程语言,用这些积木来自由组合和堆积功能。所有的积木堆积都处在操作系统限定的规则之内。每一堆积木(完整程序)都放在独立的空间,互不影响。操作系统本身进行控制,积木本身更不能影响到操作系统。