MFC
文章平均质量分 68
oathevil
夢,是抹不掉的記憶
展开
-
vc++6.0中AppWizard生成的应用程序程序框架分析(上)
<br />l 标准头文件StdAfx.h在第六讲中我们已经提到了StdAfx.h,它是构成预编译头文件的主体,现在我们就来仔细看看其中的一些语句。在FileView的“Header Files”下面找到StdAfx.h并打开它,我们可以看到几行注释下面的前六行都是编译指令,其中头两条指令用来确保StdAfx.h在同一个模块中只被包含一次,其它头文件中也有类似的语句,接下来三条指令请大家自己在MSDN库中查一下“_MSC_VER”及“#pragma once”的含义,第六条指令定义了一个符转载 2010-08-09 10:49:00 · 1619 阅读 · 0 评论 -
No result defined for action and result input -...
这是struts2的一个拦截器报的错误,当你的form中的数据有问题,比如说当 bianliang值为NULL时,又或者变量是int,long,double而值是字符串类型时,就出这个错了。具体查看form哪个变量或者值出了问题,可以在error.jsp中加入: div style ="color:red" > s:fielderror />原创 2012-02-10 11:01:36 · 808 阅读 · 0 评论 -
LPCTSTR和GetBuffer与CString
<br /><br />传参数时不可以传CString ,CString 在ATL MFC中定义是不同的,而且在各个版本里也略有不同。注意。<br /> <br />有两方法LPCTSTR和GetBuffer() <br />看看这个 <br /> <br />LPCTSTR 与 GetBuffer(int nMinBufLength) <br />这两个函数提供了与标准C的兼容转换。在实际中使用频率很高,但却是最容易出错的地方。这两个函数实际上返回的都是指针,但它们有何区转载 2011-04-13 12:22:00 · 768 阅读 · 0 评论 -
关于在MFC中调用AfxMessageBox、CWnd::MessageBox与::MessageBox的区别
<br />假设我们在一程序Msg.exe内调用这三个函数,<br /> <br />那么,当我们调用::MessageBox时,会先在Msg.exe的输入表中找到::MessageBox对应的地址,再进行调用。<br /> <br />因此,如果我们想进行::MessageBox这个API函数的拦截时,我们可以通过修改程序的输入表(Import Table)来实现。<br /> <br />然而, 对于AfxMessageBox和CWnd::MessageBox这两个函数,或许你曾经听高人说过,实际上这两原创 2010-10-08 22:12:00 · 2963 阅读 · 0 评论 -
VC中CPropertySheet 属性对话框
<br /> <br />关键词: PropertySheet <br />首先要了解的是CPropertySheet实际上是由一个TabCtrl加多个Page和多个按钮组成<br />这里强调一点,DoModal的时候并没有把所有的PAGE都创建出来,只有在SetActivePage的时候才创建<br />所以如果你初始化的代码在OnInitDialog,那么刚开始最好先用SetActivePage切换一下<br /转载 2010-08-10 14:32:00 · 930 阅读 · 0 评论 -
深入了解MFC中的文挡/视结构 (摘录)
MFC调用命令处理程序以响应发生在应用程序中的事件。命令发送的优先级是: 活动的视图->框架窗口->文档->应用程序->默认窗口过程(DefWindowsProc)如果文档数据发生了变化,则所有的视都必须被通知到,以便它们能够对所显示的数据进行相应的更新。Cdocument::UpdateAllViews函数即可完成此功能。当该函数被调用时,派生视类的CView::OnUpdate函数被触发。通常OnUpdate函数要对文档进行访问,读取文档数据,然后再对视的数据成员或控制进行更新原创 2010-08-10 14:30:00 · 674 阅读 · 0 评论 -
走出MFC子类化的迷宫:子类化,SUBCLASSWINDOW ,MFC消息机制
<br /> <br /> 许多Windows程序员都是跳过SDK直接进行RAD开发工具[或VC,我想VC应不属于RAD]的学习,有些人可能对子类化机制比较陌生。 <br /> 我们先看看什么是Windows的子类化。Windows给我们或是说给它自己定义了许多丰富的通用控件,如:Edit、ComboBox 、ListBox……等,这些控件功能丰富,能为我们开发工作带来极大方面,试想:我们单单是自己实现一个EDIT控件是多么的艰难!但是,在实际开发中还是有些情况这些标准控件也无能为力,比原创 2010-08-09 22:15:00 · 613 阅读 · 0 评论 -
VC的若干实用小技巧 (如何干净的删除一个类)
<br />Visual C++6.0(5.0)开发工具功能非常强大,但是对于初学者来说,却有很多细节的问题需要注意。作者搜集整理了以下一些实用小技巧,希望对初学者有所帮助。 <br /><br /> 1:使用vc开发项目时,常会遇到这种情况: <br /> 即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示重新编译连接一次,非常讨厌。这是因为出现了未来文件的缘故。 <br /> 解决方法: <br /> 找出对应文件夹下的debug目录,将未来文件全转载 2010-08-09 23:38:00 · 795 阅读 · 0 评论 -
VC++6.0使用CSplitterWnd类分割窗体,拆分窗体
<br /><br /> <br />晚上一个QQ技术群中的人提出了一个比较尖锐的问题,其尖锐性并不是在于难度,而是复杂度,分割窗体,也叫拆分窗体,这个问题还是值得仔细去研究一番的,下面切入正题。因为比较复杂,所以这个问题我会讲的很细致,基本是带着做下来。<br />我们在使用WINDOWS的资源管理器的时候都会注意到,他是由左右两部分组成,这就是分割窗体,那么现在我们就来给大家讲一下如何拆分窗体,而且是想怎么拆就怎么拆。以上图的三分窗体为例。(三分会用了,多分就会了)。<br />多说一句,为了更加直观的转载 2010-08-09 13:16:00 · 1617 阅读 · 0 评论 -
Enable CDialogBar 中的按钮
<br />DialogBar 控件的行为类似于上一个工具栏位图。它们可以启用或禁用通过手动添加适当的类 (如 CMainFrame) 的消息映射中的一个 ON_UPDATE_COMMAND_UI。分步示例加入DialogBar,如与资源 ID 的 IDC_BUTTON1 按钮上的控件后可使用以下步骤管理控件的状态:<br /><br />在类的声明,添加处理程序函数的声明: afx_msg void OnUpdateButton1(CCmdUI* pCmdUI); 类的实现内,转载 2010-08-09 11:34:00 · 821 阅读 · 0 评论 -
vc++6.0中AppWizard生成的应用程序框架分析(下)
<br /> 在第七讲中,我们大致了解了一下AppWizard生成的单文档程序框架中各个类的功能与特点,并且已经知道文档类、视类和主框架类之间存在着紧密的联系,在本讲之中,心铃准备详细讨论一下这种联系,以便让大家对MFC程序的文档/视图结构形成有一个初步的概念,不过大家先要有点思想准备,比较难哦。l 文档模板我们在上一讲中已经知道,在APP类的InitInstance()成员函数中有如下一段代码,其作用是为程序定义一种文档模板类型,而文档模板把文档类、主框架类和视类联系在一起。CSingl转载 2010-08-09 10:50:00 · 888 阅读 · 0 评论 -
GDI Memory Leak Detector
1 基本思想2 函数映射表3 函数拦截4 框架设计5 拦截函数原型6 核心宏原创 2014-07-24 12:51:14 · 1299 阅读 · 0 评论