初学MFC】的更多相关文章

学习使用MFC搭建界面.尝试使用MFC搭建了一个简单的基于对话框的计算器界面,包括模态对话框.非模态对话框.向导对话框等. // MFCApplicationAddDlg.h : 头文件 // #pragma once // CMFCApplicationAddDlg 对话框 class CMFCApplicationAddDlg : public CDialogEx { // 构造 public: CMFCApplicationAddDlg(CWnd* pParent = NULL); //…
初学MFC添加函数时,总是纠结于是 Add  windows message handler or Add virtual function 说到底不理解MFC中虚函数与消息处理函数的设计区别 本人理解:虚函数是层层继承的,子类Add virtual function只是去改写相应功能.虚函数一般都是程序框架必须调用的,子类没有改写就会默认调用基类的. 而消息映射只在相应类中添加自己感兴趣的处理函数,不存在继承性.所以没必要把windows消息映射函数设计成虚函数.有需要时程序才会执行这些操作.…
什么是MFC MFC,全称Microsoft Foundation Classes,微软基础类库,顾名思义,是微软的攻城狮们将一些常用的基础的Windows API 函数用C++的形式封装成类,简化程序猿的工作,将C++面向对象这一特点很好的表现出来. 用MFC可以用鼠标来编辑界面,管理各种控件,以及简化一些操作如字符串操作.文件操作.时间日期操作.网络操作.Windows系统操作.数据库操作…… 既然MFC是类库,那么她必然会用到类的特性:模板类.类的封装继承.虚继承.多态性等等. 然而就我的…
在前面的几篇文章,分析的都是Juce库里面Core模块的内存部分,除了骨灰级C++爱好者之外,貌似大家对这些都不是非常感兴趣.相信大家更想知道Juce是怎么用于产品开发,而对于它的构成不是非常感兴趣.天天写一些内存.指针.线程之类的文章.Skilla也厌倦了.这次来分析一下Juce的上层应用程序框架. 以下上一段Demo里的代码片段 class JuceDemoApplication : public JUCEApplication { public: JuceDemoApplication()…
void CMy322Dlg::OnButton1() { UpdateData(TRUE); m_crypt=m_plaintxt; for(int i=0;i<m_plaintxt.GetLength();i++) if(m_plaintxt.GetAt(i)+3<='z') m_crypt.SetAt(i,m_plaintxt.GetAt(i)+3); UpdateData(FALSE); } UpdateData(TRUE) :从编辑框读入字符串 UpdateData(FALSE):输…
         其实大多数开发初学者都有一些相同的特点,可以说是一种“职业病”.Most有其他平台开发基础的初学者,看到Xcode就想摩拳擦掌:看到Interface Builder就想跃跃欲试:而看到Objective-C就望而止步,感觉有座大山难住去路,而开山凿洞就是技术人员当仁不让的天职了-.-         我是个果迷,如果你和我一样对苹果开发—>Mac OS X 或iPhone有兴趣,但一看到Objective-C就头热的话,那就需要对Objective-C作一些简单而又必要的了…
这篇文章主要介绍了Erlang初学:Erlang的一些特点和个人理解总结,本文总结了函数式编程.一切都是常量.轻量进程.进程端口映射及典型缺点等内容,需要的朋友可以参考下 我对 Erlang 编程理念的理解:以分布式架构师的角度写代码. 函数式编程 Erlang 里面的函数是数学里面的函数:必须有返回值. 只要是函数必然有返回值,函数是一个过程,以英文的句号为函数结束符. 函数结束之前的表达式就是该函数的返回值. 所以这也是在 Erlang 里面的函数不会看到任何 return 语句的原因. C…
在上一篇中介绍了几个写入注册表数据和读取注册表数据的接口,并介绍了使用方法. 这一片教你如何使得你的应用程序在下次打开时保持上一次关闭前的状态. 在上一篇添加的代码的基础上,要添加WM_CLOSE消息的响应函数,因为我们只有在窗口关闭前要保存窗口的位置信息,所以保存窗口位置到注册表的代码要写在这个消息处理函数. 代码如下: void CTestClassDlg::OnClose() { )) { //保存窗口的位置 WINDOWPLACEMENT wp; GetWindowPlacement(&…
理解文档/视图框架                                      出处.雷神 了解文档和视图的相互作用关系是编写MFC程序的基本功.但是MFC的应用程序框架把文档和视图之间的关系封装了起来,初学的朋友往往不得要领,因此写程序往往被局限于在用向导生成的框架中.本文希望能够尽可能说明白文档视图框架之间是如何进行作用,希望能给一些朋友带来小小的帮助.     几个概念:     (虽然大家都知道了,雷神还是要重申一次)     文档对象:是用来保存数据的.     视图对象…
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9394465 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 在这个教程中主要内容是2D游戏,关于3D游戏,雾央也还在努力学习之中,等以后有时间,一定会把自己学到的知识分享给大家,所以这一节中主要讲解的就是2D游戏中的障碍物判定了,4…
MFC中创建多线程   MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员,可以这样实现: 1)全局函数.如   UINT   MyThread(LPVOID   p) 2)类的静态成员函数.如   static   UINT   MyView::MyThread(LPVOID   p) 线程函数是可以带参数的,比如  static __stdcall  workthre…
1.   列举几种进程的同步机制,并比较其优缺点. 原子操作    信号量机制   自旋锁    管程,会合,分布式系统 2.   进程之间通信的途径 共享存储系统       消息传递系统     管道:以文件系统为基础 3.   进程死锁的原因 资源竞争及进程推进顺序非法 4.   死锁的4个必要条件 互斥.请求保持.不可剥夺.环路 5.   死锁的处理 鸵鸟策略.预防策略.避免策略.检测与解除死锁 6.   操作系统中进程调度策略有哪几种? FCFS(先来先服务),优先级,时间片轮转,多级…
对于初学VC的朋友来说,连接数据库其实是一件不容易的事情.记得我当时为了与数据库连接上,找了好多资料,上网看了好多文章,都没有解决这个问题.后 来,有个网友帮我解决了,我再次表示感谢.为了后来VC初学的朋友的方便,我现在将VC连接SQL2000数据库的方法写下来,就算你是初学,即使刚入 门,也可以成功连接数据库的. (注意:由于文章过长,本文章未写完,如果想要整个的代码,可以留个邮箱,或发邮件到yinfulin888888@qq.com索要) 先做点准备工作吧. 1学VC连接数据库,要安装两个软…
最近有朋友问我C++(or C)怎么入门,其实这个还真不是很好回答的,想了下就写下这篇博文以说下我自己的学习路程吧! 正儿八经的,其实我觉得自己也学得不咋地,不管是C还是C++都是如此的强大,要真正的说精通C++的,我觉得至少得花好几年的时间吧.我是大学里边才接触到计算机语言的(现大二),学校课程安排是大学二年级才开始学习C++的,上手就是C++,还真有点惊讶,听其他朋友说都是先学习C,然后再学习C++的,当时就觉得,看来我们学校对我们挺有信心嘛(心中美滋滋的). ---------------…
MFC中png格式图片贴图的实现(2011-07-14 19:10:29)  ___转载自新浪 初学vc,正在做五子棋,五子棋中的图片格式都是bmp格式的,所以贴图用CBitmap可以很简单的实现.刚开始也没有在意那么多,今天刚把五子棋做完就兴冲冲的把代码和release版本的exe文件发给我的指导老师看,发现我的文件相当大,所以指导老师给我指出了bmp格式的图片比较占内存,让我寻找一下png格式的贴图. 于是我在网上搜索了大量的资料,看到了有用API OleLoadPicture来加载JPG.…
去年就打算总结一下,结果新换的工作特别忙,就迟迟没有认真动手.主要内容是很多初学DDD甚至于学习很长时间的同学没有弄明白DDD是什么,适合什么情况.这世界上没有银弹,抛开了适合的场景孤立的去研究DDD,在学习过程中还可以,但是应用到实际项目时就会遇到各种坑,到头来各种妥协,我看到很多同学遇到这种情况,最后怪DDD,说DDD不实用云云.另有一些都没细了解过就抨击反对的,事实上,要想否定个东西,你总要了解了才有发言权. 一.误区 综合起来主要有一下几种误区: 1.1.DDD更高级,可以替代三层,为了…
由于需要将MFC程序在其它电脑上运行,所以需要将动态链接的MFC改成静态链接,本以为很简单,没想到链接的时候出现下面的链接错误: uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj) uafxcw.lib(afxmem.obj) : error LNK2005: &q…
原文地址:gulp初学 至于gulp与grunt的区别,用过的人都略知一二,总的来说就是2点: 1.gulp的gulpfile.js  配置简单而且更容易阅读和维护.之所以如此,是因为它们的工作方式不同,gulp的流式构建使得gulpfile.js文件写起来并不是像Gruntfile.js一样完成一个个插件的配置那样多.对于这点我的理解还不是很深刻,只能暂时这样做一个比较吧,以后的学习接触多了应该就会深刻的体会到. 2.似乎gulp的上手比grunt更简单一些,或者说一个是轻量级一个是重量级的吧…
原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —dist   //压缩后的目标文件夹 —lib   //各个模块 —drag    //拖拽模块 —scale   //缩放模块 —seajs    //seajs库 —seajs_drag    //入口的主文件main.js —main.js /*——————————————————————————…
第一次用博客,第一篇随笔,就写今天遇到的一个问题吧. 在VS2008的MFC对话框程序,窗口成员变量的声明顺序与其析构顺序相反,即,先声明的变量后析构,后声明的变量先析构.未在其他模式下测试. class A { public: A() { MessageBox(NULL,"A 构造", "A", MB_OK); } ~A() { MessageBox(NULL,"A 析构", "A", MB_OK);//并不会显示对话框 }…
1. 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量.其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类.    2. MFC中最重要的封装是对Win32 API的封装,因此,理解Windows Object和MFC Object (C++对象,一个C++…
上一篇实现了在MFC的窗体内显示图片,本篇介绍如何在MFC窗体内实时显示摄像头的影像. 要实现的功能是点击一个“开始”按钮,可以显示影像,再点击“停止”按钮,可以停止显示. 因为实时显示影像需要在一个循环里执行,为了在显示影像的同时还可以干别的(比如,点击“停止”按钮),这里需要用到多线程,即显示影像的代码放到子线程中,与主线程并发执行. 重点已经说清楚了,下面是开发步骤: 1.先把Halcon中实时显示的程序搞定 2.Halcon代码导出为C++代码 3.建立MFC工程 4.在MFC中添加Ha…
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6231104.html 打开VS2010,依次打开File – New – Project,弹出New Project对话框.选择Visual C ++下的MFC,接着选择MFC Application项,即创建一个MFC应用程序.输入项目名称Test和解决方案名称MFC,OK. 弹出向导对话框: 下一步,选择单文档应用程序类型,支持文档/视类结构,项目类型选择MFC,可视类型和颜色…
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6216464.html MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始端点,其二,利用不同的方法实现画线.下面着重学习总结画线功能实现方法. 在OnLButtonDown函数中记录起始端点,CPoint m_ptOrigin = point; 在OnLButtonUp函数中实现画线.方法如下: 画线方法一:利用SDK全局函数实现视图窗口画线功能 //获取设备描述表 H…
---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Draw,运行如图所示: 下面主要用来讲解函数和变量添加方法,以此弄明白MFC消息映射机制,接着实现一个简单的画线功能. 右击工程名,选择Class Wizard,在Project项选择工程名Draw(此为要处理的工程),在Class name项选择CDrawView(此为添加函数的类,此处表示要在视图…
概述: 鉴于本人初学,使用的编译器是webStorm,需添加对VUE的支持,添加方法可以参考 http://www.jianshu.com/p/142dae4f8b51. 起步: 1. 扎实的 JavaScript.HTML . CSS 基本功,这是接触vue的前提条件. 2. 学习vue官方的基础内容.不要构建工具webpack,只是页面<script>引入vue.js,把基础教程里的例子模仿练习,理解用法.如果没有 Node/Webpack 基础,不建议直接用 vue-cli 构建项目.…
MFC中view类主要处理显示视图,doc类处理文档,mainframe主要为整个窗口的和工程的设置管理.由此,VTK与MFC联合编程时,需要主要的是数据操作,以及显示要很好的与MFC中的结构结合,做到MVC分离的要求和规范,视图-模型和控制一定要处理开来,尤其是大工程的处理时,才能不混乱.…
>------ 已启动生成: 项目: OSGtest, 配置: Debug Win32 ------1>正在编译...1>AddScene.cpp1>main.cpp1>c:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(24) : fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version)…
1.#include指令  包含指定的文件,最基本的最熟悉的指令,编程中不得不用,包含库文件用双尖括号,包含自定义头文件用双引号. 2.#define指令   预定义,通常用它来定义常量(包括无参量与带参量),以及用来实现那些"表面似和善.背后一长串"的宏,它本身并不在编译过程中进行,而是在预处理过程就已经完成了. 对于一个频繁使用的短小函数,在C语言中用宏定义,C++用inline. 3.#typedef指令 常用来定义一个标识符及关键字的别名它是语言编译过程的一部分,但它并不实际分…
MFC自带的滑动条的样子是这样的. 比较难看,所以需要重绘下,重绘后的样子是这样的. 代码如下: CustomSliderCtr.h #pragma once // CCustomSliderCtr class CCustomSliderCtr : public CSliderCtrl { DECLARE_DYNAMIC(CCustomSliderCtr) public: CCustomSliderCtr(); virtual ~CCustomSliderCtr(); protected: af…