
Windows程序设计
文章平均质量分 78
jslmes
做不一样的IT人
展开
-
Windows程序的生命周期
几年前曾经看过侯俊杰老师的《MFC深入浅出》,觉得这本书对MFC的讲解比较深入,由浅入深,对C++的基础、Windows程序的基础、MFC的原理等讲的都比较好。通过几年的工作学习,我对MFC的理解也有了进一步的提高,想再去看一遍这本书,最近看了第一章,就想写点东西来增加自己的理解,也顺便开始我的博客之旅。我的第一篇文章,想谈谈Windows程序的开始和结束。 每当我们双击桌面上的应用程序原创 2016-07-15 08:42:12 · 820 阅读 · 0 评论 -
C++的面向对象特性
工作了两年过后,感觉对C++的一些特性反而忘了一些,很多概念都模糊了。昨天看了《MFC深入浅出》的第二章,对C++的知识进行了或多或少的回顾,其中一些概念,歇久了不去看,总是会遗忘。"温故而知新,不亦说乎",趁着空暇时间去看看那些基础知识,总能够收获不少。 C++是专门为面向对象方法而设计语言,使得我们能够用现实生活中的经验来编写程序。但是它保留了C语言的相关特性,并非像C#、Java那原创 2016-07-15 08:42:15 · 412 阅读 · 0 评论 -
MFC程序的theApp对象
每次创建一个MFC应用程序,不管是Doc/View类型的,还是对话框类型的,都会发现MFC会自动为我们创建一个CXXXApp的类,其中XXX表示我们的工程名。其实很多时候,我们都不会用到这个类,也不会在其中添加属性和方法,而是创建我们自己的类。那么MFC为什么会生成这个类呢?下面我以简单的MFC对话框程序为例子,谈一下自己的理解。 利用Visual Studio 2010创建一个MFC对原创 2016-07-15 08:42:18 · 2325 阅读 · 0 评论 -
MFC的Button和Static控件
最近要写一个MFC的对话框程序,发现要把MFC的对话框写的有色彩点并不容易,不像在C#里设置属性指就好,而是要自己去写一些代码完成对话框的绘画操作。比如一个简单的鼠标移入、移出操作,都要自己去写代码。由于我只用到了Button和Static两种控件,一切看上去还是比较顺利,所以谈谈自己的经验。 1、对话框的背景 MFC中没有属性能够设定对话框的背景颜色或是图片,需要我们在程序中进行操作原创 2016-07-15 08:42:21 · 528 阅读 · 0 评论 -
自行设计MFC向导对话框
MFC没有提供现成的向导对话框,而是提供了CPropertySheet和CPropertyPage两个类,分别表示向导容器、向导页。为了制作出向导风格的对话框,需要从CPropertySheet继承一个自己的类,控制每个页面的显示,以及制作每个页面的对话框,并基于CPropertyPage类实现这些对话框类。关于使用CPropertySheet和CPropertyPage制作向导的文章,网上有很多原创 2016-07-15 08:42:23 · 2087 阅读 · 0 评论 -
MFC带文字显示的进度条
很多时候我们都要在UI上显示事件的进度信息,MFC也提供了现成的进度条控件CProgressCtrl,只要在UI上放置一个CProgressCtrl控件,然后在程序中调用SetRange和SetPos方法就可以显示进度信息了。但是MFC自带的控件并不是完美的,例如它无法显示文字进度,如“50%”等,只能通过进度条的位置大致判断当前的进度,如果需要详细的进度,通常还要放置一个Static控件单独显示原创 2016-07-15 08:42:26 · 6899 阅读 · 0 评论 -
MFC加载PNG图片
MFC中如果要在自绘控件中加入图片,需要BMP格式的图片,直接在资源文件中加入,然后通过CBitmap类的LoadBitmap方法加载资源即可。但是对于JPG或者PNG格式的图片,就无法采用这种方法加载了,然而PNG格式图片的大小比BMP格式小很多,所以很多时候需要使用PNG格式的图片。 MFC提供了CImage类来加载各种格式的图片,下面仅给出使用CImage加载PNG图片的实例代码:原创 2016-07-15 08:42:29 · 2155 阅读 · 0 评论 -
关于C语言的main函数
最近回看了一本C语言方面的书,准备复习一下C语言的基础知识,正如大多数C语言课本一样,第一个例子总是简单的"Hello World",如下: main() { printf("Hello World!\n"); //输出字符串并换行 } 现在再看这个例子,就会发现有几个问题。首先,C语言中每个函数都会返回值,包括空类型。上面的例子中,原创 2016-07-15 08:42:34 · 645 阅读 · 0 评论 -
修改MFC OCX的GUID
最近在开发一个新项目时,需要用到一个已经发布过的OCX控件,但是需要两个产品能够相互兼容,这就需要两个不同的OCX,但是代码等都是一样的,所以想到修改OCX的名称以及相关GUID来产生两个OCX文件。OCX是通过regsvr32命令注册到系统中的,在注册表中可以搜索到OCX的GUID和文件位置,OCX工程中的ODL文件中记录了它的接口、事件、类的GUID。下面以TestOcx项目为示例,简单讲一下原创 2016-07-15 08:43:09 · 1864 阅读 · 0 评论