![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MFC
stoneboy100200
这个作者很懒,什么都没留下…
展开
-
使用GDI+的MFC应用程序的文件打开和保存对话框
转自:http://www.vckbase.com/index.php/wv/1409(译注:原文代码的Demo_VC7没有在同Demo_VC6一样显示滚动条视图,修改之)开发环境:Windows XP/Server 2003/2000/NT4.0-SP6/98/Me, MS Visual Sudio 6.0/2003, GDI+介绍CGdiplusFileOpenDialog和C转载 2012-10-23 11:12:43 · 1064 阅读 · 0 评论 -
滚动条(CScrollBar)控件
转自:http://hi.baidu.com/3582077/item/bb76bb564dc8589609be1721 这里不讲滚动条的使用方法了,只说怎么自绘滚动条控件。滚动条基本知识参考http://hi.baidu.com/3582077/blog/item/d30e5b38f8709aecb211c7c0.html(PS暂且先自绘水平滚动条,不考虑垂直转载 2012-11-08 14:36:19 · 3506 阅读 · 0 评论 -
双缓存解决闪烁及对话框背景覆盖控件问题
一、闪烁问题。 闪烁问题在MFC窗体中经常见到。在网上碰到这些问题的层次不穷,解决方法也是多样的!但是最经典也最耐用的还是靠用双缓存解决!首先让我们来了解一下,为什么会产生屏幕闪烁问题:闪烁可以这样定义:当后面一幅图像以很快的速度画在前面一幅图像上时,在后面图像显示前,你可以很快看到前面那一个图像,这样的现象就是闪烁。我认为,闪烁会让使用者对程序很不满,原因是:如果用户接口编码如此糟转载 2012-11-09 10:26:24 · 1334 阅读 · 0 评论 -
VC防止窗口和控件闪烁的方法
转自:http://xuzhigang921.blog.163.com/blog/static/5619922020121232653491/一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕转载 2012-11-26 14:51:44 · 1435 阅读 · 0 评论 -
WS_CLIPCHILDREN和WS_CLIPSIBLINGS
转自:http://st251256589.blog.163.com/blog/static/164876449201182181758635/1.求助MSDN 我的第一步当然是求助MSDN。在MSDN里面有详细的解释。 1.1 WS_CLIPCHILDREN WS_CLIPCHILDREN样式从字面上可以理解成ClipChildren,裁减子窗口。 M转载 2012-11-12 10:31:55 · 603 阅读 · 0 评论 -
MFC操作ini文件方法
转自:http://blog.csdn.net/rayborn1105/article/details/8192142一个不错的接口:http://blog.csdn.net/qq575787460/article/details/8185339 在我们的程序设计中经常需要对一些参数进行配置,配置好后还要在下一次启动仍然有效,那么一个有效的可行办法就是使用ini文件,也就转载 2012-11-30 16:37:44 · 4181 阅读 · 0 评论 -
CFileFind
转自:http://hi.baidu.com/luckycky/item/4c2b5c90fa004ed51b49df9eMFC类CFileFind执行本地文件查找,是CGopherFileFind和CFtpFileFind的基类;后两类用于Internet文件查找。CFileFind包括的成员函数有开始查找、定位文件、返回标题名或路径。对于Internet查找来说,GetFileURL返回文转载 2012-12-05 19:20:40 · 2107 阅读 · 0 评论 -
GetCurrentDirectory()和GetModuleFileName()函数的区别
转自:http://blog.csdn.net/kzh313561014/article/details/6630643GetCurrentDirectory只是返回当前进程的当前目录,而并不是进程的镜像文件(.exe)所在的目录GetCurrentDirectory()适用于XP等系统,在WinCE上不能使用GetModuleFileName()适用于WinCE2.0以后使用方法转载 2012-12-05 19:18:15 · 904 阅读 · 0 评论 -
LNK2005错误 :error LNK2005: 已经在 libcmtd.lib(dbgheap.obj) 中定义
转自:http://hi.baidu.com/weitingwang/item/d9de9ae8f581f4e8fb42ba5eVS2005链接问题: LNK2005错误 :error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义以前经常遇到这个警告信息,因为运行并没有什么问题,所以也没深究。但是耿耿于怀那个“ 0转载 2012-11-23 13:21:09 · 23526 阅读 · 1 评论 -
使用宏防止闪烁
转 自:http://hi.baidu.com/koko200147/item/92f5d04b0aa04caddf2a9f99本文主要是通过网上一篇文章提供的解决办法,整理了一组宏来实现防闪烁的。本文的重点是展示这个宏及其使用方法。 解决方法的原理请参考: http://www.cndes.cn/Designs/Program/200608052716.html针对上文中提到的转载 2012-11-23 17:00:16 · 939 阅读 · 0 评论 -
GDI+编程小结
转自:http://blog.csdn.net/byxdaz/article/details/5972759GDI+(Graphics Device Interface Plus图形设备接口加)是Windows XP和Windows Server 2003操作系统的子系统,也是.NET框架的重要组成部分,负责在屏幕和打印机上绘制图形图像和显示信息。GDI+不但在功能上比GDI 要强转载 2012-12-27 15:33:20 · 4091 阅读 · 0 评论 -
深度探索WM_PAINT消息
转自:http://blog.csdn.net/sdn_009/article/details/3293501【引言】:这是以前在作VC/EVC开发时候遇到的一个郁闷的问题的思考,刚好最近在VC#开发时候遇到了类似的问题,因此就总结出来,期望能够给遇到同样问题的开发者一些帮助和提示。 问题缘起 半年前,在作Mobile GPS项目(移动手持设备上的GPS/GIS转载 2012-12-28 19:45:26 · 627 阅读 · 0 评论 -
WM_Paint 消息详解
转自:http://blog.csdn.net/sdn_009/article/details/3292133WM_PAINT 是 Windows 窗口系统中一条重要的消息,应用程序通过处理该消息实现在窗口上的绘制工作。1. 系统何时发送WM_PAINT消息? 系统会在多个不转载 2012-12-28 19:42:37 · 795 阅读 · 0 评论 -
ShowWindow, UpdateWindow, SendMessage, PostMessage, PeekMessage, GetMessage
ShowWindow与UpdateWindowCWnd::UpdateWindow() In MSDN:Updates the client area by sending a WM_PAINT message if the update region is not empty.The UpdateWindow member function sends a WM_转载 2012-12-31 11:14:36 · 735 阅读 · 0 评论 -
AlphaBlend StretchBlt BitBlt
AlphaBlend该函数显示拥有透明或半透明像素的位图。SyntaxBOOL AlphaBlend( HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hdcSrc, i转载 2013-01-04 19:09:11 · 1060 阅读 · 0 评论 -
透明位图的显示
转自:http://www.vckbase.com/index.php/wv/358.html包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。一、Tr转载 2013-01-07 13:54:45 · 824 阅读 · 0 评论 -
vc, vs2005 中无法链接strcasecmp 和 strncasecmp的解决办法
转自:点击打开链接VS2005中没有strcasecmp和strncasecmp函数,需要自己添加。在.h文文件中添加如下声明:#ifdef _MSC_VERint strcasecmp(char *s1, char *s2);int strncasecmp(char *s1, char *s2, register int n);#endif在.转载 2013-03-17 22:58:55 · 1740 阅读 · 0 评论 -
如何子类化(SubclassWindow)窗体
转自:http://blog.csdn.net/yuntongsf/article/details/4443356窗口子类化的作用窗口子类化技术最大的特点就是能够截取 Windows 的消息。一旦用户自定义的窗口函数截取了传向原窗口函数的消息,就可以对被截取的消息进行如下处理:将其传给原来的窗口函数。这是对大多数消息应该采取的措施,因为子类通常只对原来的窗口特性作少量的改动截取该消转载 2012-11-06 15:21:44 · 496 阅读 · 0 评论 -
在打开文件对话框上实现图象预览
转自:http://www.vckbase.com/index.php/wv/1139前言:本文主要是介绍在打开文件对话框,实现对图象,文本等预览(在VC++6.0下实现)。本人的水平有限,如有表达不清之处,请谅解,请各位提出意见与建议!正文:1、Win98下预览对话框的实现:2、Win2000,XP下预览对话框的实现:3、m_ofn成及OPENFILENAME的介绍:转载 2012-09-20 13:33:15 · 1432 阅读 · 0 评论 -
一个定制CFileDialog对话框的实例
转自:http://www.vckbase.com/index.php/wv/228很多程序员都喜欢让自己的代码运行效果与众不同。Windows系统的应用程序打开某个文件一般使用的都是默认的CFileDialog。但是这个默认的CFileDialog往往满足不了用户的要求。我就碰到一个这样的用户,他的要求如下:1、在默认的CFileDialog对话框中加一个预览窗格,以便在选中ASCII文转载 2012-10-08 15:06:25 · 2536 阅读 · 0 评论 -
VC的内存绘图防止屏幕闪烁技术的实现
转自:http://xvdongming001.blog.163.com/blog/static/739891892008513105535645/在工业控制系统中,经常需要实时的显示一些曲线,运用传统的绘图方法,会引起屏幕的强烈闪烁。现在常用的解决方法是:利用内存绘图的技术,将需显示的图形绘制在内存位图中,然后再拷贝到屏幕上,很好的解决了屏幕闪烁的问题。并且处理速度快。其实VC的转载 2012-10-08 17:54:12 · 1260 阅读 · 0 评论 -
HDC,CDC,CWindowDC,CClientDC,CPaintDC基础
首先说一下什么是DC(设备描述表)Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉。在c++ 编程中常会见到HDC转载 2012-09-26 20:09:35 · 529 阅读 · 0 评论 -
MFC如何进行文件操作
如何进行文件操作 各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效的代码。本文对Visual C++中有关文件操作进行了全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行了详细分析。 1. 文件的查找 当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有转载 2012-09-19 19:23:36 · 759 阅读 · 0 评论 -
【MFC】打开文件的流程
打开文件的步骤如下:弹出打开文件对话框 -> 获取选择的文件,并将文件显示在视图中。 我们程序中经常需要定制的操作如下:1. 定制弹出的文件对话框,例如需要修改打开文件的类型或扩展名2. 定制文件显示的行为3. 定制文件打开后的行为 1. CWinApp::OnFileOpen它是ID_FILE_OPEN消息的处理函数,在内部调用C转载 2012-09-18 10:19:54 · 1836 阅读 · 0 评论 -
vc工程配置积累
链接某个lib : #pragma comment(lib, "libname.lib") // libname.lib是lib文件的名字抑制某个警告: #pragma warning(disable : warning_number) // warning_number是警告编号 判断VC版本的宏: MS VC++ 9.0 _MSC_转载 2012-09-18 10:16:28 · 509 阅读 · 0 评论 -
MFC中获取App,MainFrame,Doc和View类等指针的方法
1 获取应用程序类(App)指针 在任何类中都可用MFC全局函数AfxGetApp()获得2 获取框架类(MainFrame)指针 1)在App中获得MainFrame指针 CWinApp 中的 m_pMainWnd变量就是MainFrame的指针 也可以: CMainFrame *pMain =(CMainFram转载 2012-09-17 19:20:30 · 1602 阅读 · 0 评论 -
CString 操作指南
转自:http://www.vckbase.com/index.php/wv/829通过阅读本文你可以学习如何有效地使用 CString。CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。使用转载 2012-09-17 11:15:00 · 1130 阅读 · 0 评论 -
MFC框架各部分指针获取方式
前人在CSDN总结的,曾经帮助过我,整理总结一下,希望也能帮助一下别人。 获得CWinApp获得CMainFrame获得CChildFrame获得CDocument获得CView在CWinApp中 AfxGetMainWnd()m_pMainWnd转载 2012-09-13 13:36:51 · 510 阅读 · 0 评论 -
VS Feature Pack学习之使用CMFCMenuBar自定义菜单栏
转自:http://blog.csdn.net/clever101/article/details/5795520现在很多应用程序的界面基本是用配置文件来规划界面的,在这个时候就得学会自定义菜单栏和工具栏之类的。 VS Feature Pack是为微软新推出的界面库(听说是买BCG的授权,然后对之进行改造的),其中的主要的界面类可以和BCG的界面类可以对应起来,类转载 2012-09-13 11:19:18 · 761 阅读 · 0 评论 -
AfxMessageBox
在屏幕上显示一个消息框。 int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0);int AFXAPI AfxMessageBox( UINT nIDPrompt, UINT nType =转载 2012-09-12 15:02:59 · 2033 阅读 · 0 评论 -
虚拟列表控件
转自:http://hi.baidu.com/spiderlog/item/9691c039ebf99ef2a884281d一、什么是虚拟列表控件虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件。。二、为什么使用虚拟列表控件我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示的数据插入列表中,之后我们就不必关心数据在哪里了,转载 2012-10-30 15:54:24 · 703 阅读 · 0 评论 -
防止CListCtrl闪烁的几种方法
转自:http://blog.sina.com.cn/s/blog_5ee42ba30100g50j.html1.使用SetRedraw禁止窗口重绘,操作完成后,再恢复窗口重绘m_ctlList.SetRedraw(FALSE); //以下为更新数据操作//……//恢复窗口重绘m_ctlList.SetRedraw(TRUE);2.使用Loc转载 2012-10-30 14:38:58 · 508 阅读 · 0 评论 -
解决CListCtrl闪烁及水平滚动条不能跟踪拖动的问题(MFC)
转自:http://blog.csdn.net/zwgdft/article/details/7394318 项目中用到一个界面如下图所示,在View上有个CPropertySheet,其上有几个CPropertyPage,每个属性页上有个CListCtrl,供用户查看信息。由于CListCtrl中的信息每隔200ms就要刷新一次,导致这个区域不停的闪烁。同时,由于空间不够,C转载 2012-10-30 14:37:28 · 1824 阅读 · 0 评论 -
MFC总结之CListCtrl用法及技巧(二)
转自:http://blog.csdn.net/zwgdft/article/details/7565331 续第一篇:MFC总结之CListCtrl用法及技巧(一) http://blog.csdn.net/zwgdft/article/details/7560592 本篇重点介绍:禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击转载 2012-10-30 13:23:06 · 820 阅读 · 0 评论 -
MFC总结之CListCtrl用法及技巧(一)
转自:http://blog.csdn.net/zwgdft/article/details/7560592# 本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧。当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅。主要包括以下十三点内容:基本操作、获取选中行的行号、复选框操作、动态设置选中行的字体颜色、设置选中行的背景颜色转载 2012-10-30 13:21:49 · 748 阅读 · 0 评论 -
WM_PAINT介绍 及 OnPaint()函数的作用原理
转自:http://blog.sina.com.cn/s/blog_4b3c1f950100dmhm.html* WM_PAINT是窗口每次重绘都会产生的一个消息。* MFC中 OnPaint()是对这个消息的反应函数( mfc 的 CWnd::OnPaint() 没做什么,只是丢给系统处理,下面就是介绍它在系统中的处理流程) 关于 WM_PAIN转载 2012-10-16 14:42:10 · 1002 阅读 · 0 评论 -
CCommandLineInfo详解-启动不创建新文档
转自:点击打开链接问:其实这里面还有问题,如果是单文档应用程序,这样做会出错。虽然编译连接都能通过,但是调试运行是到这里提示出错而中断了。错误:在winocc.cpp文件的这句话:ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));处程序中断了。似乎是因为无法创建窗体的原因。后来只能通过:指定启动时打开默认文档才避免了出错转载 2013-03-18 18:47:43 · 853 阅读 · 0 评论