篇一 :mfc近期学习总结

1. void CDlgSysF9::DoDataExchange(CDataExchange* pDX)

{

    CDialogEx::DoDataExchange(pDX);

    DDX_Control(pDX, IDC_CBOX_CANTILEVER, m_combox_cantilever);

    }

这个函数是类自动生成的,一般情况下用add variable添加控件变量之后会自动生成DDX_Control(pDX, IDC_CBOX_CANTILEVER, m_combox_cantilever);这行代码

如果是用代码添加控件变量的话,要手动加上这一句,ID号和相应的变量名

2.对combo box添加变量之后用下面的代码添加下拉框的选项

m_combox_cantilever.AddString(_T("haha"));

    m_combox_cantilever.SetCurSel(0);

3.按钮button弹出对话框的代码

CDlgSysF9AdjOrigin SysF9AdjOringin; //类名定义一个变量

SysF9AdjOringin.DoModal();//弹窗操作

记得包含CDlgSysF9AdjOrigin的头文件

4.画刷的使用,改变字体颜色和背景颜色【字体颜色、字体的背景颜色、大背景颜色】

CBrush m_brush;

记得初始化画刷

m_brush.CreateSolidBrush(RGB(128,128,128));

   if(pWnd->GetDlgCtrlID()==IDC_STC_ROLL)

    {

…… …… 余下全文

篇二 :c++学习心得

c++学习心得

2008-03-12 16:24

为初学者指路

首先声明,我可不是什么高手,也就是刚脱贫。因为运气很好,买到了几本好书,在学习过程中几乎没走什么弯路,没费什么劲就入门了,现在一般的小程序能搞定了。看到那些因为不知从何下手而苦苦挣扎的朋友,希望我的文章能给他们一些帮助。

学编程急不得,上来就学VC肯定碰一头灰,说VC难就难在这点上了。如果硬上,意志坚强的话也许能挺过来,但也是会缺乏后劲,不得不回过头来补习基础知识。意志不坚强的话,很有可能就此放弃了,并留下一个VC难得不得了的印象。其实,只要踏踏实实一步一步来,VC也就是很简单点事。在这里我说一下,如果你还只是一个初中生,那么你就应当仔细考虑一下了。首先,限于你的知识和思维能力,学学C语言还应该没问题,但要学VC是要下相当大的功夫的。而且,你现在学到的东西将来一定会过时,所以不如把精力放在算法的研究上,毕竟这些东西永远都不会过时。

我觉着如果走对路子,入门VC,一个暑假应该够用了。

虽说学VC并不是传说的那么难,可不下些苦功夫是学不成的。在学VC前,你必须确定,你是因为热爱编程才学VC的,而不是出于炫耀或其他。否则,恐怕你坚持不到胜利的那一天。

对于首次接触编程的同学,我建议最好先学一下Quick BASIC(DOS里就有带,就是那个QBASIC.EXE),不用多学,知道什么是整型什么是浮点,以及DO...LOOP FOR...NEXT 等最基本的知识,能算个阶乘,求个积分就行了,关键要明白计算机是怎么执行命令的,对编程有个感性认识。如果你对自己有自信,也可以直接学C++,应该也不会多费太多事。不过我觉着因为有很多资料是FOR VB的,并且网页编程常用VB Script,以后你也很有可能要用到VB,所以了解一些BASIC对以后也是有帮助的。而且如果只是要算个小题用QB比VC、VB之类方便多了。(找个人教一两天应该就能搞定了吧)

…… …… 余下全文

篇三 :mfc心得--周清学

MFC设计心得体会

03014121 周清学

经过一年对C++程序语言设计的学习后,短学期的MFC的学习是对程序语言算法设计的一个深入了解的一步,不但让我认识到MFC平台功能的强大和自身知识的不足,也增加了我对算法设计的兴趣和更深层次的理解。

MFC编程只是一种工具,而编程的核心还是代码的实现。我们在使用MFC编程时要想学得更好就要不断练习,更具体的了解其中的各种类、函数,各种工具,MFC是一个巨大的工具箱,但是如果不知道工具箱里面的工具怎么用,那在好的工具也无用武之地。所以,我认为此次编程小实习主要是让我初步接触了MFC如何实现可视化编程。未来要想真正掌握MFC编程还要不断的深入了解各种MFC工具,真正的与代码结合起来实现高效实用的编程效果。

这次编程实习过程中,另一点感受最深的就是团队合作,一支团队要想有好的工作效率和质量就必须有足够的队伍成员间的默契。如果仅仅靠个别人去完成,其实是很不科学的,不仅费时而且可能会白白做很多无用功,因此,在以后的小组中一定要加强团队合作意识。另一点就是一个队伍的成员可以不是特别出色,但是队伍的领导者一定要负责,领导者可以不是特别杰出的技术骨干人员,但必须懂得怎样协调、安排工作,这也是实现高效团队的关键因素。通过这次暑期编程实验,不仅充实了短学期生活,也让我学到了一些新的知识,让我更加深刻的理解了团队合作的重要性。在以后的学习生活要积极参加类似的活动,加强知识学习,能力提高,为未来的职业生涯逐渐打下一个坚实的基础。!

在完成项目的过程中,我们从最开始对最终实现效果的未知,通过课本还有互联网上的教程以及示例,开始构想项目实现的功能以及实现的方法,然后分步编写好各部分的程序,最后再将不同窗口结合起来,才基本实现的预先的基本功能。这其中对我而言最困难的是函数的使用和结合。因为MFC平台所提供的资

源是非常丰富的,而我对其了解不够,所以花了很多时间去研究示例的程序以及在互联网上咨询或是查资料,程序语言中很多复杂语句也是很大的一个挑战。不过最后在和我的小伙伴共同努力下我们基本算是完成了我们设计的这个项目。虽然程序设计有不足之处,比如在进行找零时,为了计算方便我们默认找零只能找0.05的硬币,因此如果没有更多补充0.05硬币会消耗完;运行时在一些考虑不周全,比如没有货物后会出现负数,找零硬币不够就会运行错误等等。虽然不足还很多,但是这次项目是对我们团队协作能力的锻炼以及对程序语言设计的一次更多的认识,将对以后程序语言设计的应用有很大的帮助。

…… …… 余下全文

篇四 :学习C++Primer心得

学习C++Primer心得和一些问题

1、在VC的MFC程序中能否使用cout输出?

答:不能。必须使用CDC来进行输出。

2、C++中子类的构造函数是否会自动调用基类构造函数?

答:会。如果在子类的构造函数中不显式指定调用基类构造函数,则将自动调用基类缺省构造函数,所以基类一定要有缺省构造函数。如果子类的构造函数除了调用基类构造函数以外什么都不做,不能不写,必须写一个空函数。

3、子类对象的初始化过程是怎样的?

答:先调用基类构造函数来初始化相关的基类子对象,然后再执行子类(派生类)的构造函数。

4、名字空间的使用有哪些方式?

答:大概有三种方式:

l 使用名字空间别名加上名称限制修饰符

namespace LIB = IBM_Canada_Laboratory;

LIB::Array<int> ia(1024);

l using指示符,使名字空间内的所有声明可见

using namespace IBM_Canada_Laboratory;

l using声明,使名字空间中的单个声明可见

using IBM_Canada_Laboratory::Matrix;

using指示符和using声明的本质是不同的。

5、如何声明一个对象已经在文件外被定义?

答:使用extern来声明。可以在多个地方多次声明同一个对象,但是一个对象只能被定义一次,而且多个声明必须明确无误的指向这个定义实体。声明不分配内存,定义分配内存。

6、类的缺省构造函数会为类的数据成员初始化吗?

答:不会。只会分配内存,不会初始化。必须在缺省构造函数中显式进行初始化。

7、下面的对象初始化是调用赋值操作符吗?

BaseClass base1; BaseClass base2 = base1;

答:不是。是调用拷贝构造函数。

…… …… 余下全文

篇五 :MFC心得

MFC学习心得

时光如梭,不知不觉短学期已经结束一个月左右了。对于MFC,这种c++的高级应用,从陌生到熟悉,从茫然到大致了解,从不屑一顾到很感兴趣,在编写飞行棋这个游戏的过程中感触良多,也收获了许多。

MFC跟以前的控制台编程有比较大的差异,实现了部分可视化编程。对于其中复杂的类和函数,刚开始的时候感到相当的恐慌。虽然在暑假的时候有看过一些书,但到真正做起来却仍然觉得很吃力。第一次上MFC的课,老师一下子讲了很多东西,主要是控件,对于如此繁复的知识感觉一片茫然。整个理论课上了四节,虽然老师也讲了一些东西,但是对于我们要做的系统却是远远不够的。所以,很多东西都需要我们自学,到图书馆借书,到网上查找资料,问同学,问老师……我们使用各种方法获取知识。

必须学会自学,这是短学期的编程课带给我的一大感触。虽然我们需要做的只是一个小型的游戏,但对于初次接触窗口编程的我们难度依然是非常大了。但是,我们克服了,通过我们的团结协作。

要学会团结协作是我另一大感触。小组中各个组员的通力合作是编程工作能够顺利进行的一大关键,我们进行了明确的分工,却又能互相合作,互相参考,互相帮助。只有这样,才会有最后的飞行棋游戏新鲜出炉。

在编程过程中,我主要负责的部分是图形设计和界面美化部分。这部分的特点是:既与大一所学的控制台编程紧密联系,又必须要和现在所学的窗口程序编程相衔接。代码基本上靠逐行输入,考验的是自己的逻辑思维能力和严谨态度。其实,这部分的代码并不是特别多,所以编写代码的工作也并不是很难的。 最磨练人的耐性的是将写好的代码进行调试。由于程序长度相对于原来的编程根本不属于同一个数量级,所以调试理所当然地变得痛苦起来。并且,这些代码基本上在编译时都能够一次通过,但在实际运行时却老是出错,检查算法和语法又不得要领。这个时候,就不得不耐着性子,用调试工具逐行调试了。学会了一些调试技巧,这不得不说是编程过程中我的一大收获。

…… …… 余下全文

篇六 :MFC学习心得

?

?

?

o

o 《深入浅出mfc》学习笔记 来源:CSDN作者:CSDN 发布时间:2008-04-03 10:16:21 域名注册 域名惊喜价格 cn域名1元注册 com域名39.9元

虚拟主机

o

o 主机按月支付,低至19元/月 超大流量,可开子站点

o

o 特惠VPS168元/月,4-8M独享带宽保证 独立操作系统,无限开站点

《深入浅出MFC》是本人一直想深读的一本书,在刚开始学VC时虽然也曾化一些时间来看,但总觉得收获不大,经过一段时间的程式设计实践,目前回过头来看这些东西,觉得有了不少收获,或许这正是我喜欢这本书的原因所在,越读越有味道,越读越觉得书中的东西能够弥补自己的缺憾,这样的才算是真正的得到了阅读的乐趣吧。下面摘抄一些原文,并总结了一些学习心得,权当作一点小小的学习收获吧,也希望在写作和阅读的过程中获得更多的理解和体会。

文章结构如下,先引用一部分原文,然后是自己的学习心得,最后翻译了原文中引用的一段说明文件,对于要反复读取的重要书籍,我一贯采取这样的读法,先读框架结构,在细细研读,从中找出关键词句,写出自己的心得体会,然后反复用心体会,知道完全理解为止,只有这样,才能不辜负一本优秀的技术图书作者的良苦用心和自己所耗费的时间和精力吧。

原文:

凝聚性强、组织化强的类库就是Application Framework。一组合作无间的对象,彼此藉信息的流动而沟通,并且互相调用对方的函数以求完成任务,这就是Application Framework。

对于数据结构的安排,数据的处理,数据的显示,Application Framework所能提供的,无一不是单单一个空壳而已——在C++语言来讲就是个虚函数。软件研发人员必须想办法改造(override)这些虚函数,才能符合个人所需。

非常明显,Application Framework是一组终极的类库,能够被称为Framework者必须是其中的类性质紧密咬合,互相呼应。

…… …… 余下全文

篇七 :MFC学习心得

              AfxMessageBoxMessageBox的区别

AfxMessageBox的函数原型
int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );
int AFXAPI AfxMessageBox( UINT nIDPrompt, UINT nType = MB_OK, UINT nIDHelp = (UINT) –1 );
在第一种形式中,lpszText表示在消息框内部显示的文本,消息框的标题为应用程序的可执行文件名(如Hello)。在第二种形式中,nIDPrompt为要显示的文本字符串在字符串表中的ID。函数调用时会自动从字符串表中载入字符串并显示在消息框中。nType为消息框中显示的按钮风格和图标风格的组合,可以采用|(或)操作符组合各种风格。

按钮风格
MB_ABORTRETRYIGNORE   消息框中显示Abort、Retry、Ignore按钮
MB_OK   显示OK按钮
MB_OKCANCEL 显示OK、Cancel按钮
MB_RETRYCANCEL 显示Retry、Cancel按钮
MB_YESNO 显示Yes、No按钮
MB_YESNOCANCEL 示Yes、No、Cancel按钮
图标风格
MB_ICONINFORMATION 显示一个i图标,表示提示
MB_ICONEXCLAMATION 显示一个惊叹号,表示警告
MB_ICONSTOP 显示手形图标,表示警告或严重错误
MB_ICONQUESTION 显示问号图标,表示疑问

AfxMessageBox类似的函数MessageBox,它是CWnd的类成员函数:
int MessageBox( LPCTSTR lpszText,LPCTSTR lpszCaption = NULL,UINT nType = MB_OK );

…… …… 余下全文

篇八 :MFC编程实验个人总结报告

MFC编程实验个人总结报告

MFC编程实验个人总结报告

一、MFC类、函数等知识小结:

1、SetTimer (1, m_intLevel, NULL);

在MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄了于是SetTimer函数的原型变为:

  UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))

  当使用SetTimer函数的时候,就会生成一个计时器。函数中nIDEvent指的是计时器的标识,也就是名字。nElapse指的是时间间隔,也就是每隔多长时间触发一次事件。第三个参数是一个回调函数,在这个函数里,放入你想要做的事情的代码,你可以将它设定为NULL,也就是使用系统默认的回调函数,系统默认认的是onTime函数。这个函数怎么生成的呢?你需要在需要计时器的类的生成onTime函数:在ClassWizard里,选择需要计时器的类,添加WM_TIME消息映射,就自动生成onTime函数了。然后在函数里添加代码,让代码实现功能。每隔一段时间就会自动执行一次。

  例:

  SetTimer(1,1000,NULL);

  1:计时器的名称;

  1000:时间间隔,单位是毫秒;

  NULL:使用onTime函数。

当不需要计时器的时候调用KillTimer(nIDEvent);

  例如:KillTimer(1);

KillTimer (1);

2、typedef struct{};

(1) struct{ int x; int y; }test1;

好,定义了 结构 test1,

test1.x 和 test1.y 可以在语句里用了。

…… …… 余下全文