VC++ MFC学习
auto_ptr
只要自己不放弃,就永远都有机会
心若在,梦就在!
展开
-
虚函数的实现方式
深入浅出MFC 关于“虚函数的读书笔记”原创 2010-09-23 12:09:00 · 597 阅读 · 0 评论 -
Windows编程中SetViewportOrg与SetWindowOrg的理解
最近突然又很有激情的开始看Jeff Prosise的那本"Programming Windows with MFC, 2 ed."。尽管是英文版的,但是感觉这本书上手比喉结的那本所谓的 深入浅出MFC 要容易理解的多。候同学给人一种故弄玄虚故作深沉的感觉,而Jeff Prosise的这本书才真正的称得上是深入浅出。尽管如此,其中有关GDI绘图中的坐标映射部分还是有一个问题没有搞清楚,那就是SetWindowOrg和SetViewportOrg这两个函数到底应该如何理解。潘爱民翻译的那本VC内幕没有讲转载 2011-03-29 10:25:00 · 630 阅读 · 0 评论 -
MFC中获得各个类的句柄的总结
<br />1) 在View中获得Doc指针:<br /> <br />CYouSDIDoc *pDoc=GetDocument();一个视只能有一个文档。<br />2) 在App中获得MainFrame指针:<br />CWinApp 中的 m_pMainWnd变量就是MainFrame的指针,也可以:CMainFrame *pMain =(CMainFrame *)AfxGetMainWnd();<br /><br />3) 在View中获得MainFrame指针<br />CMainFrame *p转载 2011-03-29 23:28:00 · 723 阅读 · 0 评论 -
SetFocus、SetCapture和SetActiveView 区别
<br />1、工具栏、菜单栏按钮消息,即所谓的命令消息,它们的消息传递的方式是拐弯上溯(侯俊杰老师的说法),消息会先到view那里,这里view就是MFC的活动视图,用SetActiveView来设置。<br />2、鼠标、键盘消息是一般windows消息,它们消息传递的方式是直线上溯。其中,滚轮、键盘消息会传到拥有Focus的视图那里,用setfocus来设置,如果没有设置Focus,则会传到ActiveView那里;单击、双击、右键等消息会传到拥有Capture的试图那里,用SetCapture来设置原创 2011-03-29 01:03:00 · 3582 阅读 · 0 评论 -
在MFC中更改View类的基类CView为CScrollView的关键步骤
1.首先要确定Document的大小,比如400×450.可以将其大小存储在Document类中,也可以直接去设置2.在代码中把public:C××View:CView中的CView改为CScrollView,以及消息映射中的CView都改掉。如果你怕出错可以将C××View.cpp和C××View.h中的CView都用查找替换为CScrollView。3.这是最重要的一步,一定要给改过之后的C××View类中加入OnInitialUpdate()函数,而且得在函数中用SetScrollSizes函原创 2011-03-28 21:13:00 · 8574 阅读 · 1 评论 -
通俗的DC解释
在GDI中,DC(Device context)是一个非常重要的概念。有的书中,将DC翻译为设备描述表(《Windows 程序设计 第五版》作者Charles Petzold),也有的书将DC翻译为设备上下文。到底什么是DC?用现实中的例子来理解可能更容易些。如果你喜欢画画,你得先准备了画布,画笔,颜料……画画的环境搭建好了,你就可以画画了。这个画画的环境,就是DC。在图形环境下,一切都是画出来的,所以,你要准备好一个DC,才能在屏幕上画画。—原创 2010-11-09 10:59:00 · 830 阅读 · 0 评论 -
CPaintDC, CClientDC与CWindowDC的区别
CClientDC(客户区设备上下文)用于客户区的输出,它在构造函数中封装了GetDC(),在析构函数中封装了ReleaseDC()函数。一般在响应非窗口重画消息(如键盘输入时绘制文本、鼠标绘图)绘图时要用到它。转载 2010-10-31 00:47:00 · 435 阅读 · 0 评论 -
MFC程序产生、启动全讲解
一、正文1、Applicate Object产生,内存于是获得配置,初值也设立,也即调用了CWinApp的构造函数2、CWinApp --> AfxWinMain,它先执行 AfxWinInit --> AfxInitThread 。把消息队列尽量加大到 963、AfxWinMain 执行 InitApplication ,这个函数为CWinApp的虚函数,通常不需要改写,主要为MFC内部管理作一些设置ps.以前的InitApplication是注册窗口类的场所!!4、AfxWinMai转载 2010-10-31 10:33:00 · 715 阅读 · 0 评论 -
#define XXX 后面一定要回车
<br />我最近在做一个手动创建MFC的程序,编译程序后出现如下错误<br />resource.h(1) : fatal error RC1004: unexpected end of file found<br />NMAKE : fatal error U1077: 'rc.exe' : return code '0x1'<br />Stop.<br /> <br /> <br />为此我检查了整个程序,花了近两个小时的时间,最后我才发现居然是我的资源文件(.rc)的最后一个#define XXX原创 2010-10-29 14:31:00 · 673 阅读 · 0 评论 -
浅谈C++类- 友元
呵,又来了,自从我开始尝试描述类以来,我发现我自己是开始真的了解类了,虽然还不到就明白什么叫oo的高深境界,起码对于类的使用方法了解的更多了,希望你看了以后也能有所进步啊:)现在开始讲一个有利有弊的东西,友元(friend),我以前讲过了private的数据和函数别人是不能直接调用的,这一点对于封装起到了很重要的作用。但是有的时候总是有调用一个类private成员这样需要的,那怎么办呢?C++给了我们友元这个家伙,按我的习惯,首先看个例子。转载 2010-10-23 22:28:00 · 550 阅读 · 0 评论 -
extern用法详解[自用]
1 基本解释<br /> extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。<br /> 另外,extern也可用来进行链接指定。<br />2 问题:extern 变量<br /> 在一个源文件里定义了一个数组:char a[6];<br /> 在另外一个文件里用下列语句进行了声明:extern char *a;<br /> 请问,这样可以吗? <br /> 答案与分析:<br /> 1)、不可以,程序运行时会告诉转载 2010-10-17 17:07:00 · 431 阅读 · 0 评论 -
DOS 或SDK下的类Serialize保存或恢复数据
在MFC中想要把文件存盘,使用Serialize是很方便的事情,但是在SDK或Console下想保存就得自己处理,但没必要把整个MFC拿过来。但可以使用MFC中Serialize的思想。为了使文件的保存像Serialize中的一样,必须以OOP为前提。Serialize本身是对CObject所封装的数据提供一个保存和读取的方法。在每一个对象中应声明保存和读取函数,这里并没有使用合二为一的Serialize,而是把Save()和Load()各自声明。要想结合成Serialize,必须对>>和原创 2010-10-16 22:38:00 · 603 阅读 · 0 评论 -
C++中 PASCAL关键字
<br />VC里面:PASCAL==CALLBACK==WINAPI==__stdcall<br /> _stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。<br /> _cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函数采用从右到左转载 2010-10-13 21:02:00 · 1857 阅读 · 0 评论 -
MFC多线程
1 MFC 对 多 线 程 的 支 持<br />---- MFC 类 库 提 供 了 多 线 程 编 程 支 持, 对 于 用 户编 程 实 现 来 说 更 加 方 便。 非 常 重 要 的 一 点 就 是, 在 多 窗 口 线 程 情 况 下,MFC 直 接 提 供 了 用 户 接 口线 程 的 设 计。 <br />---- MFC 区 分 两 种 类 型 的 线 程: 辅 助 线 程(Worker Thread) 和 用 户 界 面 线 程(UserInterface Thread)。 辅 助 线转载 2011-03-30 01:12:00 · 1147 阅读 · 0 评论