
MFC
文章平均质量分 50
大红番茄
这个作者很懒,什么都没留下…
展开
-
MFC创建嵌入式对话框,实现切换不同的对话框在主对话框指定位置
本例子以两个子对话框为例,点击两个按钮,分别显示不同的对话框内容。1、新增两个按钮,分别为打开对话框1和打开对话框2;2、新增对话框1,ID为IDD_DIALOG1,修改属性中,style为child, Border为none;双击确定,生成CDialog1类,继承CDialog类;3、新增对话框2,ID为IDD_DIALOG2,修改属性中,style为child, Border为no原创 2016-11-28 17:24:55 · 5709 阅读 · 4 评论 -
VS2008使用dataGrid控件,点击表格可以删除字符。
在属性中把下列三个属性全部修改为FALSE.原创 2016-12-26 17:30:49 · 701 阅读 · 0 评论 -
ADO访问数据库获取 Recordset 对象中的记录数
CString strSQL = "SELECT * FROM authors"; _RecordsetPtr pRs = NULL; pRs.CreateInstance("ADODB.Recordset"); long nRecordCount = 0; try { pRs->Open( _vari原创 2016-12-27 17:06:28 · 8265 阅读 · 0 评论 -
MFC中使用radio分组
将radio1、radio2、radio3分为1组,radio4、radio5分为另一组;方法:设置 radio1 的 属性: group为true设置 radio4 的 属性: group为true注意,一组radio的ID一定是连续的! 关联int型变量 注意:只需将group属性为true的radio1关联,radi原创 2016-12-29 12:56:14 · 1430 阅读 · 0 评论 -
VC资源编辑器里对话框的大小和实际的像素尺寸显示问题 .
在使用Visual Studio 6.0(Visual C++ 6.0)VS2005及VS2008也存在同样的问题,开发的过程中,对话框中的控件在资源编辑器中的尺寸和其实际的像素尺寸之间的对应问题非常的令人烦恼。特别是在要求对话框控件大小随屏幕分辨率或程序窗口大小变化而变化时就更加令人挠头。 原因就在于,资源编辑器中的单位(DLU)与屏幕像素之间的对应关系随着对话框字体种类和大小的变转载 2017-01-14 21:15:53 · 3234 阅读 · 0 评论 -
MFC 刷新失效的Picture控件
问题描述:如在摄像头显示时,关闭摄像头,此时Picture控件仍然显示最后一帧图像,需要刷新掉,还原Picture控件。或者重复显示两张不同大小的图片时,第二张背景有第一张图片残留。 解决方法1:(最笨的方法) 用对话框背景色来填充控件,CRect rect;GetDlgItem(IDC_ShowImage)->GetClientRect(&rect);GetD转载 2017-01-15 08:30:22 · 2852 阅读 · 0 评论 -
MFC 打开外部EXE文件的三种方法
2010年07月30日 目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了《vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess》,我全文转载一下,另外后面加点自己的总结(黑体部分,除了标题)。 三个SDK函数: WinExec,ShellExecute ,Creat转载 2017-01-15 15:56:37 · 802 阅读 · 0 评论 -
MFC设置对话框背景和边框颜色
对于对话框,只需要重载默认的消息处理函数就行了:// 重载默认的消息处理函数,主要处理WM_MOVE WM_PAINT WM_NCPAINT WM_NCACTIVATE WM_NOTIFY这// 几个消息就可以了LRESULT CMyDialog::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam){ L转载 2017-02-06 16:47:33 · 5276 阅读 · 0 评论 -
MFC中函数GetWindowRect()和GetClientRect()的区别
通过例子来说明这两个函数的具体作用。创建一个基于Dialog的MFC应用程序工程Dialog,在对话框上添加一个按钮,其ID为IDC_BTN_ESCAPE:在DialogDlg.cpp中使用语句:[cpp] view plaincopyCRect rectBtn; GetDlgItem(IDC_BTN_ESCAPE)->转载 2017-01-11 17:33:25 · 1559 阅读 · 0 评论 -
用LoadImage加载ICON图片,图片显示不正常
1、用LoadImage加载图片,显示图片不正常,如下:2、查找原因,修改按钮的的ICON属性为TRUE后,显示正常。3、显示正常原创 2017-01-17 12:03:49 · 5174 阅读 · 0 评论 -
MFC 给按钮加载图标,并指定图标大小的方法
用LoadImage函数1、首先在资源管理器中增加图标资源(此处为IDI_ICON1),注意必须为ICON类型的文件;2、增加一个按钮,按钮大小和图片大小一致(像素)。按钮关联控制变量m_btnPlay; 3、在初始化函数中增加加载处理。 HICON hIcon;hIcon = (HICON)LoadImage(AfxGetInstanceHandle原创 2017-01-17 11:59:27 · 7494 阅读 · 0 评论 -
MFC动态创建创建的按钮添加响应函数
二、动态控件的响应:动态控件的响应函数不能用ClassWizard添加,只能手动添加。仍以上面的按钮为例,我们制作按钮的单击响应函数。1.在MESSAGE_MAP中添加响应函数:MESSAGE_MAP表中定义了消息响应函数,其格式为:消息名(ID,函数名),当我们用ClassWizard添加函数时,会自动添加在AFX_MSG_MAP括起的区间内,如:BEGI原创 2017-02-09 17:46:18 · 1349 阅读 · 0 评论 -
把CString转换成DATETIMEPICKER控件识别的数据
最近做了一个界面,需要保存从DATETIMEPICKER获取到的数据到数据库,然后从数据库从取出来再显示到该控件里。于是用了GetWindowTextA和SetWindowTextA实现,完成之后从测试结果看,保存没有问题,读取出来是失效的,显示的仍然是默认的当前日期。在网上查找了一下方法,意思就是要先转换成日期格式的之后再SetTime,问题解决,代码如下:COl原创 2017-02-28 11:50:27 · 649 阅读 · 1 评论 -
MFC使用windows图片查看器
BOOL CCommonFun::PictureWindows(const CString &strPicFile, CString &sError) { CString strSystemDir=""; ::GetSystemDirectory(strSystemDir.GetBuffer(256), 256); strSystemDir.Rele转载 2017-02-13 11:15:18 · 1485 阅读 · 0 评论 -
MFC--在主窗口显示前先显示登录窗口 .
在主窗口显示前先显示登录窗口通常的应用程序,在主界面显示前要先有一个登录窗口,登录成功后才会显示主界面,下面我们来解决这个问题。第一步:先利用VS的APP向导建立一个MFC的对话框应用这一步我们省略了第二步:我们建立登录窗口利用向导在工程里加入一个名称叫CLoginDlg的类,这个类继承MFC的CDialog类。 建立后,打开资源管理转载 2017-01-23 23:05:44 · 3087 阅读 · 1 评论 -
不识别list的解决方法
1、 首先包含头文件#include 2、其实使用标准命名空间using namespace std;原创 2017-02-22 11:03:41 · 1162 阅读 · 0 评论 -
GetClientRect获取到的宽度和高度比实际小的问题解决方法
对一个文本控件,用GetClientRect获取坐标,发现获取到的高度和宽度比实际值小4,最后发现是边框的问题,设置border为无边框之后,问题解决!原创 2017-02-16 11:01:26 · 3352 阅读 · 2 评论 -
用CopyFileEx拷贝文件之后,再调用DeleteFile删除文件删除不掉的问题
下载了网上据说可以显示拷贝进度的源代码FileCopy.cpp文件,确实好用、管用,姐还用来实现了拷贝多个文件,有进度、有提示,看起来效果美美哒。可是,第二天,测试的小朋友找我了,姐,文件删除不了了。。。于是,姐排列了N种操作,终于定位发现运来是FileCopy.cpp中获取文件大小时,用CreateFile打开了文件,木有用CloseHandle关闭。原创 2017-02-27 14:30:26 · 1231 阅读 · 1 评论 -
MFC中popup、child、overlapped对话框的区别
overlapped window,从窗口关系的角度,可独立存在。child窗口,依附于parentwindow窗口,随parentwindow存在而存在,显示在parent内部Popup窗口,弹出窗口,依附于parentwindow窗口,随parentwindow存在而存在, 相对于parentwindow位置可超过边界。overlapped 是一个 MFC原创 2016-12-23 10:18:29 · 6958 阅读 · 0 评论 -
vs2008 MFC使用DataGrid控件绑定数据库
1、首先在对话框上点击右键,选择插入ActiveX控件,向下拖拉,找到MicrosoftDataGrid Control 6.0(SP6)(OLEDB),点击确定,在界面上会新增一个控件。2、在界面上点击该控件后,点击右键增加控制变量m_dataGrid。3、在对话框头文件中增加:#import "c:\program files\common files\system\ado\m原创 2016-12-23 09:23:35 · 2512 阅读 · 0 评论 -
MFC 打开弹出对话框
1、首先在当前对话框的头文件中定义需要打开对话框的变量。此处以CDialog1举例; 声明:CDialog1 pDialog1;2、在初始化函数中赋值该指针为NULL pDialog1 = NULL;3、增加一个按钮“打开对话框1”,在点击事件中添加:if(pDialog1 != NULL){return;}pDialog1 = new CD原创 2016-12-22 11:03:10 · 839 阅读 · 0 评论 -
CString和char*、char[]互转
CString m_str1;CString m_str2;CString m_str3;//CString 转换为char*char * strCharPointer;strCharPointer = (LPSTR)(LPCSTR)m_str1; //char* 转换为CStringm_str2.Format("%s", strCharPointe原创 2016-11-30 08:25:14 · 410 阅读 · 0 评论 -
MFC读取和写ini文件
本文内容为从当前运行目录下的SysCfg.ini文件中读写配置,工程目录:http://download.youkuaiyun.com/detail/dafenqie/96991401、首先定义全景变量,用来保存配置CString g_strVideoPath;CString g_strPtzVideoPath;CString g_strFixedVideoPath;CString原创 2016-12-01 17:34:05 · 1621 阅读 · 0 评论 -
CGridCtrl在MFC中的使用(一)
CGridCtrl控件是开源的,可在CodePlex和CodeProject上搜索找到,是VC++中用于显示表格数据的控件。基本功能包括:表格显示,单元格的编辑,单元格颜色设置,鼠标事件的响应,单元格内嵌入图片、CheckBox、ComboBox、Bitmap、Button等。 CodeProject中的链接http://www.codeproject.com/Articles/8/MF转载 2016-12-14 17:49:21 · 3495 阅读 · 0 评论 -
DataGrid控件的DefColWidth属性
返回或设置一个值,指示 DataGrid 控件中所有列的缺省宽度。语法object.DefColWidth [= value]DefColWidth 属性的语法具有这些部分:部分描述object对象表达式,其值是“应用于”列表中的对象。value一个基于控件的比例模型的整数。说明原创 2016-12-14 18:04:11 · 628 阅读 · 0 评论 -
vs2008 使用GDI+绘图
1、在stdafx.h文件中增加:#include using namespace Gdiplus;#pragma comment(lib,"Gdiplus.lib")2、在类的定义中增加如下两个变量定义: Gdiplus::GdiplusStartupInputgdiplusStartupInput; ULONG_PTRgdiplusTok原创 2016-12-03 10:08:39 · 1207 阅读 · 0 评论 -
MFC实现静态和动态显示bmp图片
代码下载路径:http://download.youkuaiyun.com/detail/dafenqie/96905291、通过LoadImage函数静态显示一个bmp文件: 1)增加一个pictureControl控件,修改ID为:IDC_STATIC_PICTURE 2)增加一个按钮,caption改为“静态显示图片” 3)双击按钮,生成按钮的点击响应函数,在函数中增加如下代码,其原创 2016-11-23 09:54:02 · 5970 阅读 · 0 评论 -
VC定位内存泄漏的方法
1、首先查看VC输出的提示信息,例如: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {552} normal block at 0x0030C4D0, 44 bytes long. Data: 3C 4E 46 78 1B 00 00 00 1B 00 00 00 01 00 00 00原创 2016-11-23 17:23:22 · 906 阅读 · 0 评论 -
编译中出现PCH文件错误解决方法
1>stdafx.cpp1>正在编译...1>testAccess.cpp1>d:\test\testaccess\testaccess\testaccess.cpp(5) : fatal error C1859: “Debug\testAccess.pch”意外的预编译头错误,只需重新运行编译器就可能修复此问题1>testAccessDlg.cpp1>d:\test\test原创 2016-12-13 16:22:32 · 6033 阅读 · 0 评论 -
vs2008下用c++代码实现ACCESS的访问(DAO方式)
1、首先,在头文件中包含#include 头文件;2、在对话框界面上增肌一个listBox控件,用来显示读取出来的数据;3、增加一个写ACCESS的函数,该函数中检查若数据库已经存在,则直接写入记录,若数据库不存在,先创建数据库。void CtestAccessDlg::OnWriteAccess() {//获取主程序所在路径,存在sPath中CString sPath;原创 2016-12-07 15:28:23 · 3103 阅读 · 1 评论 -
list用remove实现对结构体成员的删除
1、使用list,首先要包含list.h头文件,并使用std命名空间 在头文件中增加如下两行说明:#include using namespace std;2、定义结构体,需要在结构体里写判断“==”函数,如下所列,这里重写的"=="函数很关键,remove函数主要是通过判断两个变量是否相等来作为删除依据的。typedef struct CONFIG_ST原创 2016-11-23 17:25:21 · 3036 阅读 · 0 评论 -
MFC在picture control中JPG/BMP/ICO等格式图片显示,并支持清除图片显示
1、添加一个picture control工具,修改ID为ID_STATIC_PICTURE2、增加一个按钮,caption为查看图片,双击按钮生成按钮的点击事件,在事件中添加代码,其中_T("Picture Files (*.bmp *.ico *.jpg)|*bmp;*.ico;*jpg|All Files (*.*)|*.*||")为显示的类型,可以根据需要修改:void Ctest原创 2016-11-25 17:03:58 · 6253 阅读 · 1 评论 -
vc6.0转换为vs2008后代码编译不通过,error C2440 “static_cast” 无法从“void (__thiscall C* )(void)...
1、从VC6.0转换了一个工程到VS2008,编译提示错误:1>正在编译...1>CoolControlBar.cpp1>d:\test\accessado\coolcontrolbar.cpp(164) : error C2440: “static_cast”: 无法从“UINT (__thiscall CCoolControlBar::* )(CPoint)”转换为“LRE原创 2016-12-14 08:27:31 · 806 阅读 · 0 评论 -
神思二代身份证读卡器Demo的C++版本
在某宝上买了一个神思二代身份证读卡器,给的DEMO实在是....无语了,无奈,自己研究写了一个。1、首先,需要把licence.dat和Termb.lic文件放到C盘根目录下。 请注意,Termb.lic是有版本的,需要跟自己的读卡器一致... Termb.lic是有版本的,需要跟自己的读卡器一致...原创 2016-12-06 17:41:06 · 6038 阅读 · 1 评论 -
SQL中char、varchar、text和nchar、nvarchar、ntext的区别
1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。 2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长原创 2016-12-14 10:21:02 · 422 阅读 · 0 评论 -
MFC通过ADO操作Access数据库
在示例程序中我们仍采用原库结构,数据库名Demo.mdb,库内表名DemoTable,表内字段名为Name(姓名)和Age(年龄)的两个字段,来构造示例程序操作所需的Access数据库,这也和上两篇文章的示例源码中的库结构相兼容。下面让我们看看ADO数据库访问技术使用的基本步骤及方法: 首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程转载 2016-12-14 14:34:32 · 513 阅读 · 0 评论 -
MFC使用ADO方式访问ACCESS数据库判断数据重复的方法
1、增加变量定义: _CommandPtr m_pCommand;2、增加以下语句进行判断,此处判断的是身份证号字段,是否和strId的值一致, strId的值为CString,在执行之前赋值。 CString str;_RecordsetPtr m_tmppSet = NULL;str.Format("sel原创 2016-12-15 13:03:51 · 726 阅读 · 0 评论 -
error C2653: “Cfile”: 不是类或命名空间名称
找了一圈,最后发现,是CFile 错误的写成了Cfile!!!原创 2016-12-15 16:26:59 · 5147 阅读 · 0 评论 -
vs2015创建新项目时没有MFC选项的解决方案
1、VS20015安装完成后,从程序->Blend for Visual Studio 2015选项中大家vs2015开发界面2、打开后,新建项目,发现Visual c++中只有一个windows选型,没有MFC等选项。3、解决方法:在程序->程序->Blend for Visual Studio 2015上点击右键,选择属性,在目标框里查看路径,比如路径:"C:\Pr原创 2017-04-10 15:14:39 · 27301 阅读 · 3 评论