MFC
文章平均质量分 87
狂奔之林
技术控,对很多技术都有涉猎,喜欢开源,了解新技术
走在架构师的路上
展开
-
MFC文件复制、删除
VC:文件操作大全,打开,保存,复制,删除,查找等 各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效的代码。本文对Visual C++中有关文件操作进行了全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行了详细分析。1. 文件的查找 当对一个文件操作时,如果不知道该文件是否存在,就要首先进转载 2015-05-07 12:53:04 · 1420 阅读 · 0 评论 -
MFC新线程控制进度条
MFC新线程控制进度条几个要点:1.对话框中启动新线程。把句柄做参数传递。2.线程类中定义静态函数,也可以在对话框类中定义个全局函数。3.线程回调函数必须是静态,且以void*为参数。4.定义自定义消息,线程类发送,对话框类响应。CThread类// Thread.h#pragma once#include #include转载 2015-07-06 10:52:21 · 576 阅读 · 0 评论 -
Visual C++ 全能速查宝典
第1章 数学函数 1.1 _chgsign——求参数的相反数 1.2 _copysign——复制数据 1.3 _hypot——求直角三角形斜边长度 1.4 _max——求两个数中的大数 1.5 _min——求两个数中的小数 1.6 _scalb——求参数的(2^exp)倍数 1.7 abs——求整数的绝对值 1.8 acos——求反余弦 1.9 asin——求反转载 2015-05-20 09:13:04 · 1288 阅读 · 0 评论 -
VC6.0的若干实用小技巧
VC6.0的若干实用小技巧1.检测程序中的括号是否匹配把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。2.查看一个宏(或变量、函数)的宏定义把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F转载 2015-01-23 13:41:48 · 867 阅读 · 0 评论 -
MFC学习笔记之五—————对话框编程及控件的操作
MFC学习笔记之五—————对话框编程及控件的操作 通过一个简单的向导程序demo的设计,初步了解了MFC中一些基本对话框编程函数的编程以及一些基本控件的使用。首先来了解一些重要的函数:获取对话框上的项目指针:GetDlgItem(),注意此函数的返回值,一般都需要进行强制类型转换。获取窗口信息:GetWindowText(),而与之对应的是更改窗口信息:SetWi转载 2015-01-04 17:11:22 · 423 阅读 · 0 评论 -
MFC学习笔记之二----------MFC框架程序及消息映射
前面已经知道,在一个windows程序中,winmain函数作为程序的入口函数,一个程序的是:设计窗口(给窗口设置相应的属性)——>注册窗口——>创建窗口——>显示并且更新窗口——>消息循环;但是当创建一个MFC程序时候,并没有看到winmain函数之类的东西,并且之前的程序框架与MFC也大有不同。现在,先来看看MFC中的程序框架以及程序运行机制吧。由于MFC是对其SDK的封装,所转载 2015-01-04 17:08:01 · 394 阅读 · 0 评论 -
MFC学习笔记之六————更改appwizard生成的窗口外观
MFC学习笔记之六————更改appwizard生成的窗口外观 要更改应用程序的窗口的外观,我们可以在两个时候更改,一是在应用程序窗口创建之前,二是在应用程序窗口创建之后进行更改。本文将两种方式记录下来。 在窗口创建之前修改:我们之前已经知道,在应用程序窗口创建之前会调用一个叫PreCreateWindow()的函数,要想在窗口创建之前修改程序窗口的外观跟大小,就应该在C转载 2015-01-04 17:12:16 · 639 阅读 · 0 评论 -
MFC学习笔记之三————区分窗口类对象以及窗口&&四种获得DC方式画图
MFC学习笔记之三————区分窗口类对象以及窗口&&四种获得DC方式画图首先区分一下窗口类、窗口类对象以及窗口要区分这些关键是知道C++窗口类对象的生命周期与窗口的生命周期不是一致的!(这里容易误解的是C++窗口类对象就是窗口!)当一个窗口销毁时,与C++窗口类对象没有关系,他们之间的纽带在于这个C++窗口类内部成员变量(如m_hWnd),该变量保存了与这个C++窗转载 2015-01-04 17:08:39 · 949 阅读 · 0 评论 -
应用MFC开发高级应用程序
目次:一、使用C/C++及VC与VB之比较 二、MFC编程综述 三、使用单文档-多视结构 四、使用DDE服务 五、使用3D控制 六、使用自定义消息 七、使用不带文挡-视结构的MFC应用 八、MFC应用的人工优化[摘要]:目前在Windows下开发应用程序的工具虽然很多,但是C/C++作为一种非常成熟和高效的开发语言在大型复杂项转载 2015-02-09 16:48:14 · 2006 阅读 · 0 评论 -
MFC学习笔记之四————菜单编程与windows消息分类
MFC学习笔记之四————菜单编程与windows消息分类 首先,在MFC中,具有PopUp属性的菜单是不能用来做命令响应的。在MFC中: 当点击一个菜单项的时候,最先接受到菜单项消息的是CMainFrame框架类,CMainFrame框架类将会把菜单项消息交给它的子窗口View类,由View类首先进行处理;如果View类检测到没对该转载 2015-01-04 17:10:30 · 426 阅读 · 0 评论 -
MFC打开一个文件
第1个回答CFileDialog 文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY转载 2015-07-07 17:12:04 · 524 阅读 · 0 评论 -
error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'
1>e:/program files/microsoft visual studio 9.0/vc/atlmfc/include/afxtempl.h(776) : error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'1> e:/program f转载 2015-05-06 21:48:48 · 1091 阅读 · 0 评论 -
在对话框中加入属性页
当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置。本文针对这种方法来讨论几种可能实现的方案。 方案一本方案的例子请见源代码打包文件中的Property1部分在对话框上放置一个Tab Control的控件,再在对话框上放置所需的控件(本例放置了2个按钮,试图在每个标签中显示一个)。然后利用Class Wizard来为Tab Control控件创转载 2015-04-28 12:14:46 · 371 阅读 · 0 评论 -
主对话框,上面有四个属性页
我要实现这么一个功能: 有个主对话框,上面有四个属性页,还有其他各种控件, 每个属性页上面有不同的控件, 当选择不同的属性页上面的数据时,点击主对话框的命令按钮,就可以把在属性页上面选择的数据出来。 这样应该怎样创建呢? 好像如果直接用CPropertyPage和CPrppertySheet来创建,就不能编辑主对话框了,转载 2015-04-28 12:02:15 · 888 阅读 · 0 评论 -
反射
1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托1、什么是反射 Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assem转载 2015-05-08 17:32:23 · 455 阅读 · 0 评论 -
VS2010+MFC使用CTabCtrl控件实现属性页功能
1、VS2010中建立一个MFC工程。步骤是文件à新建à项目àMFC应用程序à输入项目名字和目录(如图)à选择基于对话框程序(如图)其他直接下一页.最后生成一个初始项目(如图).2、工具箱(如图)àTab Control,拉到大小合适的位置(如图).然后画CTabCtrl控件,类向导中关联变量名为m_tab.选转载 2015-04-28 17:04:51 · 1525 阅读 · 2 评论 -
与在MFC中使用Media Player控件有关的资料
在安装了WindowsMediaPlayer9.0后,一个WindowsMediaPlayer ActiveX控件也同时被安装到系统并完成注册。该控件为开发人员提供了WindowsMediaPlayer9.0具备的绝大部分功能,能够通过该控件比较轻松的实现对WindowsMediaPlayer9.0的二次开发。 为使用该控件,首先要将其添加到工程。点击“Project”下“转载 2015-04-27 17:31:27 · 1992 阅读 · 0 评论 -
TRACE 的信息是显示在OutPut窗口中的(MFC 机理)
MFC提供了一个小工具Tracer.exe来帮助调试Windows-Based的程序,Tracer可以在Output或Console窗口中显示MFC Library的内部操作信息,以及应用程序的Warning和Error消息,你可以按照需要来查看它们。Tracer可以经常对所出现的问题发出警告,并可以提供错误的详细解释。OutPut窗口是指在调试运行状态下,Visual Studio最下方转载 2015-02-06 16:27:08 · 7504 阅读 · 0 评论 -
VS08SP1中CMFCPropertyGridCtrl的基本用法
在DLG中的基本应用 。首先在Cxxdlg.h文件中加入[cpp] view plaincopypublic: CMFCPropertyGridCtrl m_MFCPGCtrl; CMFCPropertyGridProperty* pGroup1; CMFCPropertyGridProperty* pGroup2;转载 2014-10-25 09:28:55 · 578 阅读 · 0 评论 -
CMFCPropertyGridCtrl的简单教程
用vs2010建立一个基于对话框的MFC工程,拖一个CMFCPropertyGridCtrl进去,大小调整好。(注:首先采用的是静态创建的办法,大部分需要的属性在对话框编辑界面就可以编辑。)然后为该控件更改ID为IDC_MFCPROPERTYGRID_TEST,并且使用ClassWizard为控件添加一个变量m_propertyGrid。接下来更改控件的一些属性。其实这不就转载 2014-10-25 09:56:59 · 1300 阅读 · 0 评论 -
MFC的消息反射机制
1、消息反射解释: 父窗口将子窗口发给它的通知消息,首先反射回子窗口进行处理(即给子窗口一个机会,让子窗口处理此消息),这样通知消息就有机会能被子窗口自身进行处理。 2、MFC中引入消息反射的原因: 在Windows的消息处理中,子窗口的发给其父窗口的通知消息只能由其父窗口进行处理,这使得子窗口的自身能动性大大降低(你想,它连改变自己的背景色,处理一个自身滚动问题都要其父窗口来转载 2015-05-08 17:43:57 · 452 阅读 · 0 评论 -
MFC学习笔记之一——————win32 SDK程序框架逻辑剖析
主要将window程序的运行,一些重要的API函数的初步了解,为下一步学习MFC基础基础。将学习到的东西记记~windows应用程序与操作系统之间通过消息传递实现,操作系统将事件都封装成一个MSG的消息结构体,两者之间的交互通过消息队列完成。来看看消息中具体应有的那些信息:1 typedef struct tagMSG { // msg 2 HWND转载 2015-01-04 09:19:56 · 392 阅读 · 0 评论 -
MFC学习笔记之八————颜色对话框与字体对话框
MFC学习笔记之八————颜色对话框与字体对话框当程序中需要用到画图的时候,就要选择画笔的颜色,在MFC中提供了一个CColorDialog的类,通过此类可以很方便的创建这样一个颜色对话框。其构造函数如下:1CColorDialog( COLORREF clrInit = 0, DWORD dwFlags = 0, C转载 2015-01-04 17:14:20 · 559 阅读 · 0 评论 -
MFC学习笔记之七————工具栏编程与状态栏编程
MFC学习笔记之七————工具栏编程与状态栏编程首先来说MFC中工具栏的创建方法,可以有两种方法创建工具栏: 第一种方式的步骤如下:(1)创建工具栏资源。这个在IDE中的资源编辑器中完成。(2)构造一个CToolBar对象。(3)调用Create()函数或者CreateEx()函数创建Windows工具栏,并把它与已经创建好的CToolBar对象关联起来。(转载 2015-01-04 17:13:28 · 562 阅读 · 0 评论 -
VC++控件的汉字及颜色的编程控制
VC 控件的字体控制 若将字体设置成“宋体、仿宋—GB2312、隶书、幼圆”中的某一字体时,需将lfCharSet设置成GB2312—CHARSET才使设置的字体有效在Windows应用程序中,VC++ 5.0为编程人员提供了各种控件来实现直观、方便、快捷的交互界面,这些控件包括如静态控件、按钮、滚动条等六种在Windows系统中广泛应用的一般控件(如表1所示)和由Windows转载 2015-02-03 14:03:22 · 522 阅读 · 0 评论 -
进入MFC讲坛的前 (Window 程序详细分析)
MFC的WinMain 使用MFC编程的程序员刚开始都会提出这样一个问题:我的程序是从哪儿开始执行的?回答是:从WinMain()开始执行的。提出这样的问题是由于在他们所编写的MFC应用中看不到WinMain()函数。这个函数是隐藏在MFC框架中,MFC的设计者将它作得很通用(这主要得益于Window的消息驱动的编程机制,使得作一个通用的WinMain()很容易),因此在一般情况下,无转载 2015-02-03 16:52:20 · 526 阅读 · 0 评论 -
界面设计代码收集
VC代码收集一、改变视图背景色: 在CView的OnDraw函数中添写如下一段程序代码: void CFileNameView::OnDraw(CDC* pDC) {CFileNameDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CRect rectClient;CBrush brushBkColor;转载 2015-02-03 14:46:16 · 764 阅读 · 0 评论 -
在Unicode转换中,_T()与L到底怎么用,有什么区别
_T会根据你工程的设置自动转换UNICODE和非UNICODE. 加L就是转为UNICODE Top2楼 dumack (天天天兰) 回复于 2001-12-18 11:25:07 得分 0_T是将字符串转换为TCHAR,TCHAR是一个宏定义,当定义了UNICODE时TCHAR等同于WCHAR,否则等同于CHAR。为了和以后的平台兼容,建议转载 2015-02-03 17:43:48 · 566 阅读 · 0 评论 -
在对话框中进行消息映射((CEdit*)GetDlgItem(IDC_EDIT_TEST))->SetWindowText("this is a edit box")
话框中进行消息映射利用对话框的一个好处是可以利用ClassWizard对对话框中各个控件产生的消息进行映射,ClassWizrd可以列出各种控件可以使用的消息,并能自动产生代码。在本节中我们以一个例子来讲解如何在对话框中对子窗口消息进行映射同时还讲解如何对对话框中的子窗口进行初始化。首先我们产生编辑好一个对话框,如图,在对话框中使用的控件和ID号如下表:转载 2015-02-03 17:25:33 · 2208 阅读 · 0 评论 -
改变ListBox控件的颜色
HBRUSH CXXXXlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if(pDC->GetWindow(原创 2014-12-22 14:24:04 · 1951 阅读 · 0 评论 -
各种资源的利用(如何使用RC文件)
----在编写程序的过程中,经常要用到各种资源。比如说,想给自己的程序换个自己的图标,使用一些活泼的光标来增加趣味性,播放一些声音和动画文件,或者使用别人写好的程序来实现某个功能。我们往往希望将这些资源直接放到EXE文件中以形成一个单独的可执行文件,这就存在一个如何在运行时访问和使用这些资源的问题。----在编译期间,这就要用到一种文件,以.rc结尾的资源定义文件。一:RC文件转载 2015-01-27 15:52:48 · 4334 阅读 · 0 评论 -
MFC,ListBox使用
listBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数:BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHI转载 2015-01-28 09:08:42 · 1040 阅读 · 0 评论 -
MFC的使用技巧
1:使用vc开发项目时,常会遇到这种情况: 即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示重新编译连接一次,非常讨厌。这是因为出现了未来文件的缘故。 解决方法: 找出对应文件夹下的debug目录,将未来文件全部delete, 再rebuild all一次。(未来 文件即其创建和修改时间都比系统时间靠后) 2:有时转载 2015-01-27 16:11:33 · 653 阅读 · 0 评论 -
VC中动态添加控件
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。 一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。转载 2015-02-03 16:24:23 · 502 阅读 · 0 评论 -
如何使用ListCtrl 入门篇
ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。 先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话的使用。其次,我们这里用条款一,条款二来描转载 2015-02-04 17:20:39 · 1052 阅读 · 0 评论 -
遍历文件
void ProcPicDir(CString strPicDir){ CFileFind fileFinder; if (strPicDir.Right(1) == TEXT("\\")) { int nPos = strPicDir.ReverseFind(TEXT('\\')); str转载 2014-12-16 09:13:16 · 479 阅读 · 0 评论 -
VC 常见问题百问
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。转载 2015-02-06 16:38:45 · 416 阅读 · 0 评论 -
配置文件( .INI )操作
SetRegistryKey使用CWinApp类的WriteProfileString 、GetProfileString等函数。1、如果不调用SetRegistryKey(),CWinApp 会把信息保存系统目录的的Test.ini文件中(C:\Windows\Test.ini)2、如果调用SetRegistryKey(),CWinApp 会把信息保存系统目录的的注册原创 2015-02-06 15:39:08 · 683 阅读 · 0 评论 -
如何使用spy ++ (How to use Spy ++)
打开spy ++,会以树状图显示当前系统所有的窗体信息,如下所示然后找到你需要用到的窗体,比如说下面这样当然,这里的窗口并不一定都是窗口,子窗体的一般都是指父窗体中的控件而已其实这里的信息就已经一目了然了比如说这里显示的是“窗口000A04A0’本地连接’#32770(对话框)”其中”000A04A0”是这个窗体的句柄“本地连接”是这个窗体的标题转载 2015-02-06 13:00:57 · 526 阅读 · 0 评论 -
VC字符串转换
一、BSTR、LPSTR和LPWSTR 在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTR和LPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode和多字节字符集(MBCS)的支持。 那么什么是BSTR、LPSTR以及LPWSTR呢? BSTR(Basi转载 2015-02-05 13:24:53 · 348 阅读 · 0 评论