
Win32和MFC开发
Win32和MFC开发
嵌入式-老费
计算机科班出身,09年研究生毕业即投入嵌入式开发工作,欢迎付费咨询,微信联系:xiaoxing_fei。
展开
-
win32开发(窗口类和窗口)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 之前虽然也编写win32代码,比如使用visual studio自动生成的win32框架。但是对于代码中一直存在的MyRegisterClass和CreateWindowW之间的关系不是很清楚,不清楚为什么要这么做。昨天晚上,自己重新阅读了《windows程序设计》这本书,并且利...原创 2019-11-24 10:20:14 · 1314 阅读 · 0 评论 -
win32开发(创建子窗口)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在win32中,有的时候需要创建额外的子窗口。所谓子窗口的概念,就是窗口本身不会超出母窗口的边界,所有的操作都是在母窗口里面完成的。子窗口可以用os提供的默认类型来完成,也可以自定义类型来完成。常用的子窗口有BUTTON、COMBOBOX、EDIT、LISTBOX、STATIC、SCROL原创 2017-12-22 08:43:11 · 9635 阅读 · 0 评论 -
win32开发(自定义消息)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 一般来说,windows除了提供的普通的消息处理机制之外,还提供了自定义消息的处理方法。这就是说,不管WndProc可以处理来自于操作系统的消息,还可以处理自定义的消息。这对鞋程序的coder来说实在是太方便了。 那一般什么时候使用自定义消息呢?情况是这样的,对于那些io操作时间比较厂的动作,原创 2017-12-22 22:24:57 · 2782 阅读 · 0 评论 -
win32开发(简单绘图)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在win32上面,所有的操作都是通过消息来完成的。正如前面一节说的那样,WM_CREATE、WM_PAINT、WM_SIZE、WM_DESTROY、WM_CHAR等消息都是我们在开发中经常要遇到的消息内容。这其中,以WM_PAINT和WM_SIZE处理得最为频繁。这是因为,每次app重新绘原创 2017-12-14 08:30:00 · 1356 阅读 · 0 评论 -
win32开发(调试)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 很多同学都喜欢看代码,但是不喜欢调试代码。其实,在我看来,调试代码本身也是一项重要的能力。一份代码,如果没有经过反复调试和验证,很难说自己是不是理解得够深刻。同样对于win32也是这样,win32的api本来就多,如果不经过反复学习、练习、测试,要真正融会贯通地理解是很难的。所以,今天就说原创 2017-12-15 08:21:27 · 1847 阅读 · 0 评论 -
win32开发(mdi应用)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 mdi应用不是一个新的概念。如果说子窗口之间可以共享一个frame的话,那么mdi的概念就是,每一个子窗口一个frame。这样frame之间可以有各自的WndProc函数进行处理,使用起来也十分方便。 一般mdi是这么操作的,首先注册一个WNDCLASS,所有信息...原创 2017-12-23 22:59:54 · 1694 阅读 · 1 评论 -
win32开发(添加菜单)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 使用win32编写菜单是一件很简单的事情。要添加自己的菜单,其实只要做好两方面的事情就可以了,一个就是在ResourceView中找到菜单入口,另外一个就是在WndProc添加好回调函数就可以了。1、添加ResourceView菜单按钮2、添加回调函数,注意是在WM_COMMAND里面添加原创 2017-12-17 21:01:34 · 1450 阅读 · 0 评论 -
win32开发(按键消息)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 对于一个应用来说,按键和鼠标都是基本的消息。当然,win32也需要独立处理按键消息和鼠标消息。今天,我们就讨论一下按键消息。一般认为,当键盘上一个key按下去之后,os会给app发送三个消息,分别是WM_KEYDOWN、WM_CHAR、WM_KEYUP。WM_KEYDOWN是在key按下去原创 2017-12-18 08:30:36 · 2947 阅读 · 0 评论 -
win32开发(鼠标)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 自从上一期说了键盘消息之后,我就在想怎么写好鼠标这一章。其实和键盘消息相比较,鼠标消息也不难。几乎不需要在ResourceView做什么操作,直接在WndProc添加case响应就可以了,比如说像这样, case WM_LBUTTONDOWN: break; case原创 2017-12-18 21:35:14 · 1412 阅读 · 0 评论 -
win32开发(定时器)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 要说除了鼠标、键盘消息意外,还有什么消息最重要。我想大概是就是定时器了。这定时器可长可短,如果是短定时器的话,那么就可以形成动画,记录成视频。如果是长定时器的话,那么就是普通的定时时间,代码按时进行处理就好了。举个例子来说,大家熟悉的tcp/ip网络看起来复杂,其实深究下去也就是状态机、定原创 2017-12-19 08:31:36 · 2563 阅读 · 0 评论 -
win32开发(文件、字体和色彩)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在操作系统上,文件选择、色彩选择、和字体选择这些功能一般都是操作系统提供的。记得以前在写mfc的时候,由于基本功能都是mfc封装好的,每次调用的时候都觉得非常得神奇,等到后来有机会用win32 api写的时候,才发现编写这些功能远比我们想象得要简单。对于这些功能,mfc只不过简单的封装了一原创 2017-12-21 18:08:54 · 2151 阅读 · 0 评论 -
win32开发(消息机制)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 win32真正的本质其实就是消息机制。大家如果调试win32程序就,就会发现win32的应用其实是一个单线程代码,这至少说明windows提供的demo code是单线程应用。既然是单线程应用,那么基本上说明这个应用是一个dead loop代码。作为循环代码来说,它不可能一直在运行,那么势原创 2017-12-13 09:05:17 · 2995 阅读 · 0 评论 -
mfc大观之四(串行保存)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在mfc当中,保存其实是一件很简单的事情。你要做的其实很简单,第一步就是编写一个serial的虚函数,另外一步就是CArchive调用解决,整个过程非常简单和流畅。当然,为了判断class之间是否存在集成关系,它和之前一样也使用了runclass的方法,剩下的就是一些算术符号重载的tri原创 2016-10-23 08:30:19 · 2701 阅读 · 1 评论 -
mfc大观之三(创建对象)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 一般来说,用c++创建对象都是用new、或者是临时变量调用的方法来完成的,而在mfc中我们发现,其实不是这样的。不知道大家有没有注意,无论是view类、doc类、frame类,它的创建其实都是系统自动创建的,中间不需要开发者进行任何的参与。 这就奇怪了,既然不需要开发者的参与,那么原创 2016-10-16 17:15:20 · 3340 阅读 · 1 评论 -
mfc大观之五、六(消息机制和消息运行)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 写过windows程序的朋友都知道,win32主要是利用消息进行界面的编写的。那么在mfc中,系统是如何处理消息的。换句话说,mfc是如何利用类的特性进行消息的传递的。说到这,当让离不开之前说道的静态变量机制。事实上,mfc中所有的消息都是保存在静态全局变量中的。下面是一段示例代码,大家原创 2016-11-07 21:24:03 · 2916 阅读 · 0 评论 -
mfc大观之一(全局对象)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 一直觉得侯捷的《深入浅出mfc》写的挺好的,但是有一点我自己不太喜欢。那就是,每一次书印刷的时候,他都要把别人写的感谢信放在上面,实在觉得有点臭屁得不行。本身mfc就是一个框架而已,没有mfc用windows sdk也可以写出不错的代码。这方面大家可以看看coolplay、filezil原创 2016-10-07 21:06:05 · 4985 阅读 · 0 评论 -
win32开发(图形绘制)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在win32上面绘制图形其实是比较简单的。要想进行屏幕绘制,关键是找到设备上下文。就我目前所知道的,获得设备上下文主要有这么几种方式:一、根据BeginPaint获得设备上下文,这主要在WM_PAINT使用;二、根据GetDC获得设备上下文,这主要用在非WM_PAINT消息中;三、Crea原创 2017-12-19 22:35:31 · 3448 阅读 · 0 评论 -
win32开发(画笔、刷子、字体)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 因为win32开发基本上都是和windows打交道,这些api其他的os也用不到,所以建议大家在学习win32的时候一定要安装msdn软件。这样不管有任何的疑问,或者是想查什么app,都非常的方便。 前几次我们说到的怎么绘制简单的图形,今天我们就聊一下win32下面如何使用画笔这些原创 2017-12-20 08:30:36 · 3376 阅读 · 0 评论 -
win32开发(最简单的win32代码)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在过去工作的时间当中,我工具代码和服务器代码写得多,但是客户端写的少。有关图形界面的代码就写得更少了。所以,利用这一段时间,将win32和mfc的代码重新学习了一下,收获还是很多的。 实际开发中,使用mfc的概率比win32多很多。但是,这不妨碍大家学习win32来开发应用。建议大家原创 2017-12-12 08:48:45 · 6577 阅读 · 0 评论 -
win32开发(对话框启动)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 有过mfc开发的朋友都知道,在mfc下面有三种app开发的方式,它分别是mdi开发、sdi开发和dialog based开发。尤其是最后一种,这种基于对话框的开发方法常常用来进行简单工具的开发工作。那么,疑问来了,是不是可以用纯win32进行对话框的基本开发呢?答案是肯定,下面我们就来看一原创 2017-12-21 08:14:15 · 912 阅读 · 0 评论 -
win32开发(绘制bitmap)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 win32平台支持直接绘制bitmap图片,所以同学们可以从网上直接找一张图片来绘制。一般来说,绘制图像分成这几个步骤:1、创建兼容上下文设备,2、根据文件直接创建bitmap句柄,3、句柄绑定,4、使用bitblt绘图,5、删除bitmap句柄和兼容上下文设备,CreateCompati原创 2017-12-20 21:35:23 · 2372 阅读 · 1 评论 -
mfc大观之二(类识别)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在mfc中,判断父类和子类是否存在继承关系是通过静态变量来完成的。举个例子来说,所有子类到父类之间是通过一条链表串联在一起的。如果子类可以通过链表访问到父类的指针,那么我们说两者之间存在继承关系,否则没有继承关系。 那么,既然父类和子类是通过链表串在一起的,那么这是怎么实现的呢?关原创 2016-10-08 21:02:52 · 3022 阅读 · 0 评论