
VC/MFC/C++
masikkk
北航计算机系研究生
展开
-
VS2010编译配置Blitz-0.9
Blitz是基于C++ template高效数值计算程序库.原创 2013-10-17 19:41:01 · 2954 阅读 · 0 评论 -
MFC消息循环
MFC应用程序中处理消息的顺序1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc。2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数。3.WindowProc() 该函数负责发送消息到OnWndMsg()函数,如果未被转载 2012-08-09 12:44:26 · 1322 阅读 · 0 评论 -
WebBrowser隐藏后自动销毁的BUG以及解决办法
程序主界面上有个浏览器控件,里面是google地图,需要点击一个按钮后隐藏浏览器控件,显示其他界面,而且要做到还可以切换到原来的地图上。一开始只是在浏览器上覆盖了一个图片控件,没有隐藏浏览器,后来发现这样不行,鼠标移动到原来浏览器控件的位置上时,会变成“小抓手”(google地图上移动地图的抓手)。后来切换到其他界面时用ShowWindow将浏览器隐藏,但是出问题了,切换回来时浏览器就原创 2012-08-10 14:47:13 · 3330 阅读 · 0 评论 -
总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别
第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数, 即WM消息响应函数。 从应用程序结构的角度,拿对话框来说,红色的X对应的是CWnd,而处于对话框 中的“确定”、“取消”按钮则对应了CDialog。 第二,OnClose转载 2012-07-25 11:01:28 · 1651 阅读 · 0 评论 -
VC中给列表控件CListCtrl添加复选框
目的:使列表框(CListCtrl)的每个项(item)前面有个复选,用来标明是否选中,提交数据是只选择选中的方法:为列表框(CListCtrl)多加一个LVS_EX_CHECKBOXES风格 m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES); 添加的项(即“行”)的第一列总转载 2012-07-23 17:08:38 · 4873 阅读 · 0 评论 -
MFC 列表控件CListCtrl详解
CListCtrl::SetExtendedStyleCListCtrl的成员函数声明 DWORD SetExtendedStyle( DWORD dwNewStyle ); 函数功能设置CListCtrl的扩展样式 dwNewStyle指定的扩展样式 LVS_EX_GRIDLINES //绘制表格,网格线。 LVS_EX转载 2012-07-23 17:16:00 · 7877 阅读 · 0 评论 -
响应WM_CTLCOLOR消息,设置对话框及个空间的颜色样式
很多人都觉得自己的程序的界面不那么美观,往往VC默认产生的对话框比较单调,因此很多人往往找到很多其它的控件对对话框进行美化修饰,例如给静态控件设置字体,设置背景颜色等等,其实这些完全可以由VC自己的WM_CTLCOLOR消息来完成! WM_CTLCOLOR 消息,使你可以告诉Windows在画各种控件的背景时用什么刷子。在Windows要画控件的时候,它发送WM_CTLCOLOR给控件的父窗口转载 2012-08-07 12:14:56 · 2412 阅读 · 0 评论 -
给树形目录控件的节点添加图标
①创建一个图像列表: CImageList m_ImageList;//定义图像列表 m_ImageList.Create(16,16,ILC_COLOR24|ILC_MASK,0,1);//建立图像列表,初始有0个图像 ②向图像列表中加入图标(以下各图标文件都已导入成为工程的资源文件):原创 2012-08-08 11:01:20 · 4681 阅读 · 0 评论 -
VC中标签控件CTabCtrl的使用
VC++ Tab Control控件的详细使用(图) 网上介绍使用Tab Control控件,好像说的都不是很详细, 我一小菜这边随便说说, 见笑.1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish.2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More转载 2012-08-02 17:51:38 · 3236 阅读 · 0 评论 -
文件对话框类CFileDialog详解,文件过滤器说明
CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。成员变量: m_ofn: m_ofn是OPENFILENAME类型的结构。使用此结构,在创建之后、用DoModal成员函数显示之前初始化文件打开和存盘对话框的外表。原创 2012-07-26 13:56:45 · 5644 阅读 · 1 评论 -
mxArray数据类型
1 、数据类型mxArray的操作 在上节的Matlab引擎函数中,所有与变量有关的数据类型都是mxArray类型。数据结构mxArray以及大量的mx开头的函数,广泛用于Matlab 引擎程序和Matlab C数学库中。mxArray是一种很复杂的数据结构,与Matlab中的array相对应,我们只需熟悉Matlab的array类型和几个常用的mxArray函数即可。在VC中,所转载 2014-05-20 16:49:21 · 3401 阅读 · 0 评论 -
Matlab以MEX方式调用C源代码
如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数:double add(double x, double y){return x + y;} 现在我想要在Matlab中使用它,比如输入: >> a = add(1.1, 2.2) 3.3000要得出以上的结果,那应该怎样做呢?解决方法之一是要通过使用ME转载 2014-05-20 16:32:58 · 2781 阅读 · 0 评论 -
static_cast<>揭密
本文讨论static_cast。介绍大多程序员在学C++前都学过C,并且习惯于C风格(类型)转换。当写C++(程序)时,有时候我们在使用static_cast时可能会有点模糊。在本文中,我将说明static_cast泛型(Generic Types)01.float f = 12.3;02. 03.float* pf = &f;04.//转载 2013-05-19 16:06:15 · 1719 阅读 · 0 评论 -
Qt中的QString和标准c++中的string互相转换
string -> QString1 std::string strStd = "中文字符";2 QString strQ = QString::fromLocal8Bit(strStd.c_str());QString -> string1 QString strQ("中文字符");2 std::string strStd= strQ.toStdString();3转载 2013-04-21 22:10:33 · 3099 阅读 · 1 评论 -
C++中的迭代器
1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector定义的iterator类型。(2) 使用迭代器读取vector中的每一个元素:vector ivec(10,1);for(vect转载 2012-12-25 12:42:41 · 1523 阅读 · 0 评论 -
assert()函数用法总结
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr转载 2012-09-21 14:36:53 · 1098 阅读 · 0 评论 -
#define宏定义中的#,##,@#,\
先看下面三条语句:(1)#define Conn(x,y) x##y(2)#define ToChar(x) #@x(3)#define ToString(x) #x(1)##,连接操作符x##y表示什么?表示x连接y,举例说:int n = Conn(123,456); 结果就是n=123456;char* str = Conn("asdf", "adf")结原创 2012-09-28 15:36:44 · 1215 阅读 · 0 评论 -
VC/MFC可编辑的列表控件的实现
一、引言 列表控件主要用来以各种方式显示一组数据记录供用户进行各种操作,是最常见的控件之一。WindowsXP资源管理器中的“查看”菜单下的 “图标|平铺|列表|详细信息”就是一个非常典型的应用。MFC中的CListCtrl类提供了对列表控件操作的基本方法,包括插入一个新的项目InsertItem、删除一个项目DeleteItem、排序项目SortItems等,但CListCtrl类不支原创 2012-07-02 13:09:23 · 4776 阅读 · 2 评论 -
MFC90条技巧-带目录
1."属性页的添加: 2."List Control中标题栏(Column)的添加: 3."ToolBar和StatusBar中控件的添加: 4."通过Control创建的控件,对其属性的动态控制: 5."窗口的分割与停靠: 6. ①怎样在程序开始的时候让它最大化? ②vc++做出来的exe文件在窗体的右上方是没有最大化和最小化按钮的,怎样实现这一功能? ③如何在显转载 2012-07-02 15:00:34 · 2991 阅读 · 0 评论 -
VC中实现在指定控件上弹出右键菜单
①添加菜单资源IDR_POPMENU,在资源编辑器中编辑菜单第一列,并且为每个菜单项添加处理函数。②在视图类中重载WM_CONTEXTMENU消息(此消息在鼠标右键压下并抬起后触发)的处理函数OnContextMenu()中添加如下代码: CRect rect; //定义矩形区域 GetDlgItem(指定控件的ID) -> GetWindowRect(&原创 2012-07-12 14:08:46 · 1977 阅读 · 0 评论 -
最近琢磨出了个测试数据的小技巧
在VC中,以前测试从数据库取出来的非字符串数据时,比如测试取出的整形数据,只会建个编辑框控件,通过控件输出整形的值来看对不对。测试字符串类的还好说,用MessageBox输出看看就行。这样很费劲,测试完还得删除控件和相关变量。 现在琢磨出个小技巧,比如测试从数据库取出的一个整形a,已经知道它在数据库中的值为5,我们就可以用个判断语句:if(a == 5) Messa原创 2012-06-14 13:05:19 · 947 阅读 · 0 评论 -
VC屏幕截图并保存为bmp文件
保存抓图的简单实现实现类似的抓屏功能(简单的截图功能)其实只要两个函数就行了,以下从网上摘抄的一段代码的改写, 算是原创吧(http://www.wenyiwen.cn/a24/how161448.htm):函数1: CopyScreenToBitmap //将屏幕指定区域存成图片HBITMAP CxxxDlg::CopyScreenToBitmap(LPRECT lp转载 2012-06-13 15:14:11 · 2723 阅读 · 1 评论 -
MFC中ODBC连接MySQL数据库查询出的中文显示为乱码的问题
原博客:http://blog.youkuaiyun.com/yuanbohx/article/details/6648397按照网上提供的ODBC连接数据库的相关资料编写代码,成功编译后运行发现,非中文字段显示正确,而中文字段却是每个汉字以?显示。关于这方面的错误baidu或google下可以找到很多解答方案,我也尝试过其中的一些,有些并没有成功解决,看来出现中文乱码的原因各不相同。在这里我只将我的解决转载 2012-06-11 16:37:32 · 3828 阅读 · 3 评论 -
回调函数在MFC中的使用
回调函数在MFC中的使用原创 2010-06-21 21:47:00 · 2010 阅读 · 0 评论 -
MFC中的 stdafx.h 头文件
MFC中的 stdafx.h 头文件转载 2010-06-23 23:14:00 · 2124 阅读 · 1 评论 -
CListCtrl 使用方法介绍
CListCtrl 使用方法介绍转载 2010-06-23 23:08:00 · 842 阅读 · 0 评论 -
CString::Format()函数用法介绍
CString::Format()函数用法介绍转载 2010-06-20 22:23:00 · 1279 阅读 · 0 评论 -
error C2018: unknown character '0xa1' 错误的解决方法
error C2018: unknown character '0xa1' 错误的解决方法转载 2010-06-26 19:11:00 · 3729 阅读 · 0 评论 -
利用AppFace美化VC程序(对话框或文档视图结构)
到 http://www.appface.com去下载AppFace的安装程序,安装好后,你会发现它的include文件夹下有个appface.h文件,lib文件夹下有appface.lib和appfaceu.lib(UNICODE版本),并且在 skins文件夹的子文件(basic和powerful)下有以.urf皮肤文件,这三(四)个文件都是我们将要用到的。下面我讲讲怎么把它加入到原创 2012-06-16 14:34:44 · 2719 阅读 · 4 评论 -
关于MFC中窗口的销毁
考虑单窗口情况: 假设自己通过new创建了一个窗口对象pWnd,然后pWnd->Create。则销毁窗口的调用次序: 1. 手工调用pWnd->DestroyWindow(); 2. DestroyWindow会发送WM_DESTROY; 3. WM_DESTROY对应的消息处理函数是OnDestroy(); 4. DestroyWind转载 2012-06-16 12:29:19 · 1606 阅读 · 0 评论 -
VC中点击ComboBox下拉列表不显示数据的解决方法
今天遇到VC中点击Combo Box下拉列表的下三角不显示数据的问题(列表项已正确添加),遂上网查找原因。原来很简单,在使用Combo Box控件时,有一个显示列表区域大小的设置,默认的显示区域太小,故无法显示数据。解决方法:在资源视图的对话框对话框设计中,将鼠标在Combo Box上单击后,出现下拉的图标,向下拉下一个显示列表的区域即可。原创 2012-07-09 15:56:09 · 5661 阅读 · 0 评论 -
VC/MFC中的CComboBox控件使用详解
CComboBox控件详解CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list). CComboBox控件的常用设置属性说明: type属性:里面一共有三个选项.就是其三种形式, 我们常用的是后两种形态,其区别就是Dropdown的编辑区为可编辑控件,而转载 2012-07-09 14:40:30 · 5412 阅读 · 0 评论 -
VC工具栏中插入分隔线最简单的方法
今天本来想研究下如何添加第二条工具栏,找网上的资料,看似很简单,但添加到主工程后总是无法生成第二条工具栏。退而求其次,找到了这个在一条工具栏的按钮间加分割线的简单方法,就分割开来当多条工具条用吧。用记事本打开.rc资源文件,定位到TOOLBAR定义的地方,如下所示:IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15BEGIN BUTTO原创 2012-07-09 11:32:54 · 4888 阅读 · 1 评论 -
c++中的string类
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。首先,为了在我们的程序中使用string类型,我们必须包含转载 2010-05-30 17:43:00 · 1326 阅读 · 0 评论 -
c++中的sprintf函数详解
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format转载 2010-05-30 17:46:00 · 14802 阅读 · 0 评论 -
memset()函数用法
memset函数用法1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值c。 2。例子#include void main(){char *s="Golden Global View"; clrscr(); memset(s,'G',6);print转载 2010-06-03 22:26:00 · 1437 阅读 · 0 评论 -
C语言标准库函数qsort排序的介绍与使用
qsort函数包含在的头文件里。qsort函数声明如下:void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));参数说明如下:base: 要排序的数组nmemb: 数组中的元素数目size: 每个数组元素占用内存空间,可使用sizeof转载 2010-05-29 19:53:00 · 15068 阅读 · 2 评论 -
在javascript中利用window.external调用C++代码,调用VC函数
我们在js中可以通过window.external.aaaa()来调用浏览器提供的外部方法aaaa。IE的已默认实现了一些外部方法,可以参见1:某中文文章:http://www.it118.org/Specials/2e876829-483a-4216-a6ef-08a472c94297/8f8d0507-b4c8-4d92-8e35-3c88dade3a17.htm2:官方文档里转载 2012-07-05 13:26:45 · 8433 阅读 · 0 评论 -
CString转char的方法
CString转char的方法转载 2010-06-26 20:12:00 · 2423 阅读 · 0 评论