MFC
小伟锅
进阶的小白,大神梦!
展开
-
MFC—CToolTipCtrl使用详细解说
ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。 一般用法步骤:1. 添加CToolTipCtrl成员变量 m_tt。2. 在父窗口中调用EnableToolTips(TRUE);3. 在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的转载 2017-02-20 16:12:15 · 2827 阅读 · 0 评论 -
MFC中基于OpenCV实现Picture Control控件成像方法
MFC中基于OpenCV实现Picture Control控件成像方法有两种,一种是OpenCV2.2以前版本的绘制,另外一种是OpenCV2.2以后版本的绘制。(1)在OpenCV2.2之前的版本利用CvvImage.h,CvvImage.cpp中的DrawToHDC函数实现。(2)在OpenCV2.2之后的版本利用namedwindow创建窗户与控件的窗口子父绑定实现。1.原创 2017-11-08 10:32:26 · 1639 阅读 · 0 评论 -
GetDlgItem使用时出现ASSERT断言或报错
MFC中调用GetDlgItem函数出现ASSERT(::IsWindow(m_hWnd));断言报错原因: 在MFC的对话框程序、单文档程序和多文档程序中,由于控件所处的位置不同(即控件属于那个窗口程序),导致直接调用此函数无法获取所属窗口句柄导致出现断言报错。解决: 对话框程序:直接使用GetDlgItem函数即可; 单文档程序:m_wndDlgB原创 2017-09-10 19:11:44 · 1921 阅读 · 0 评论 -
MFC无法添加控件变量
最近在做基于HTML通信的MFC程序的时候,发现创建的基于Html的对话框或者单文档程序,无法为控件添加变量,原因应该在于在创建对话框或文档类程序的时候选择了基于Html的程序导致的,可能是VS安装不完全的问题(至于重装VS是否能解决此问题,我并未尝试),网上所说的删除ncb文件只适用于VS2008以前的版本,VS2010以后程序并没有生成ncb文件,我采用一种有局限性的方法进行解决。解决方法原创 2017-09-10 19:28:28 · 8561 阅读 · 0 评论 -
error C2079 使用未定义的class 和 error C2011 ‘class’类型重定义
error C2079 使用未定义的class问题原因:在于.h文件引用的顺序不对,在系统编译的时候是由上至下编译头文件的。解决方法:(1) 添加头文件的时候基类文件在上,基于基类的子类头文件在其下,先编译基类再编译子类; (2)若b.h中用到了a.h中的内容,c.h需要用到b.h和a.h的内容,则先添加a.h再添加b.h。error原创 2017-08-21 00:49:38 · 12595 阅读 · 1 评论 -
MFC之通过OLE实现对Excel文件的读写
关于C++实现对Excel文件的读写方法很多,大体思路为两类,一是ODBC方法,二是OLE方法,上一篇介绍了利用ODBC方法读写Excel文件,本文介绍使用OLE方法进行Excel文件读写。 文章参考了bolg.csdn.net/lht501692913/article/details/50345821,但在实际实现过程中存在各种小问题,故对其内容进行改进和补充。我采用VS2010+MFC原创 2017-08-20 23:56:40 · 5636 阅读 · 3 评论 -
MFC之ODBC实现对Excel文件读写
1.前言C++对excel文件进行读写主要方法有odbc读写和添加com库读写两种方法,本文先介绍odbc将excel当作数据库文件进行读写的方法,后续会介绍添加com库读写。使用odbc前提应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)",默认情况都是保护Excel文件驱动。2.优缺点优点: 代码少,结构简单,适原创 2017-08-19 23:24:39 · 4098 阅读 · 2 评论 -
Visual Studio中C++关于Unicode字符集和多字节字符集
1.Unicode字符集 原本标准字符集为8位的ASCII码,但世界上的书写语言不能简单地用256个8位代码即一字节表示,就试更宽的值,例如16位值。这就是Unicode非常简单的原理。与混乱的256字符代码映射,以及含有一些单字节代码和一些双字节代码的双字节字符集不同,Unicode是统一的16位系统,这样就允许表示65536个字符。在这里会高兴地告诉你前128个Unicode字符(1原创 2017-08-20 16:29:46 · 12656 阅读 · 0 评论 -
MFC中CDC的使用
绘图一般在视图类的(屏幕/打印机)绘图消息响应函数OnDraw中进行,例如:void CTestView::OnDraw(CDC* /*pDC*/) { CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return;原创 2017-08-04 21:20:34 · 10863 阅读 · 1 评论 -
MFC中AfxMessageBox和MessageBox的区别
AfxMessageBox和MessageBox的区别: 如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。 但是在WIN32 SDK的情况下只能使用MESSAGEBOX。 MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的原创 2017-08-04 21:17:07 · 1967 阅读 · 0 评论 -
MFC—4个基本类中的成员函数介绍
1. CMainFrame ActivateFrame使框架对用户可视并可用 CalcWindowRect每当主框架窗口的客户区尺寸发生变化或控制条的位置发生变化,需 要重新排列客户区时,调用该函数 Create调用以构造和初始化一个与CFrameWnd对象有关的Windows框架窗口 DefWindowProc该函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理原创 2017-08-04 21:16:21 · 1324 阅读 · 0 评论 -
MFC常用的类及其成员函数简介
MFC常用类及其成员函数 CRuntimeClass结构 在CRuntimeClass结构中定义了类名、对象所占存储空间的大小、类的版本号等成员变量及动态创建对象、派生关系判断等成员函数。每一个从CObject类派生的类都有一个CRuntimeClass结构同它关联,以便完成在运行时得到对象的信息或基类的信息。 要使用CRuntimeClass结构,必须结合使用RUNTIME_CLAS原创 2017-08-04 21:15:20 · 1878 阅读 · 0 评论 -
if (IDCANCEL==dlg.DoModal()) { return; }解释
DoModal是一个函数,可以用来显示一个模态对话框。如果成功则返回IDOK或IDCANCEL;否则返回0。IDOK和IDCANCEL都是常量,它们指示用户是选择了OK按钮还是Cancel按钮。如果返回的是IDCANCEL,你可以调用函数Windows CommDlgExtendedError来确定是否发生了一个错误。原创 2017-08-04 21:14:46 · 1934 阅读 · 0 评论 -
LVITEM概述
LVITEM列表视图控件(List Control)列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个子项目组成,并且支持大图标、小图标、列表和报表4种方式显示信息,如图1所示。图1 列表视图的4种显示方式列表视图包含一个项目列表,而其中每个项原创 2017-08-04 21:14:10 · 1390 阅读 · 0 评论 -
MFC中CFileDialog及SHBrowseForFolder
MFC中实现通过按钮来选择文件路径或文件夹路径;(1)CFileDialog类能够选择文件,并获取其路径(当然也可以通过获取文件路径再去除文件名而获得其所在文件夹路径,前提是需要先选择文件,适用于打开文件然后保存的情况,若直接想选择文件夹作为保存路径则使用SHBrowseForFolder方法)。 CString savepath; CFileDialog dlg(TRUE原创 2017-11-09 11:14:17 · 1707 阅读 · 0 评论