随笔分类 - VC++
C++、VC学习吧
摘要:C++ 宏定义将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替。预处理命令不同于一般C++语句。因此预处理命令后通常不加分号。这并不是说所有的预处理命令后都不能有分号出现。由于宏定义只是用宏名对一个字符串进行简单的替换,因此如果在宏定义命令后加了分号,将会连同分号一起进行置换。
阅读全文
摘要:作为曾经的C#开发者,习惯于为控件指定top,left,width,height
在MFC中没找到,难道靠目测,靠网格,呵呵。
原来MFC所有控件都是窗口,都有CRect
阅读全文
摘要:流行的用法:用二进制的每一位代表一种状态。
001,010,100这样就表示三种状态。
通过或|运算就可以组合各种状态。
001 | 010 = 011
001 | 010 | 100 = 111
通过与&运算可以去除某种状态。
111 & 001 = 110
阅读全文
摘要:继承CWnd的类都能放到工具条上。
原理:
1.在工具条资源添加分隔符SEPARATOR
2.设置分隔符宽度
3.得到分隔符窗口CRect
4.根据分隔符窗口创建Create组合框ComboBox
阅读全文
摘要:1.只有重载的类或者结构才能作为map的key值。
string可以作为key值是因为string重载了
2.如果不重载会提示如下错误:
error C2676: 二进制“”: “const C”不定义该运算符或到预定义运算符可接收的类型的转换
3.重载但是没有实现会提示如下错误:
Expression: invalid operator
比如bool operator (const C &c) const{return true;}
阅读全文
摘要:MFC消息机制涉及许多知识,比如消息分类,消息映射等。
知识先了解一下,马上动手实践才是硬道理。
我建了个SDI项目,把常用的消息试验了一遍。
如果像我一样初学的,可以留下邮箱索取源码。
阅读全文
摘要:纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。
首先说明这四个类的执行顺序是App->Doc->Main->View
另外添加CDialog类获得各个指针的方法。
多文档的获取有点小区别,有时间也总结一下。
阅读全文
摘要:一个要点:转化为char *
为什么要这样转化?没查到相关的解释,哪位高手知道,敬请告知。
阅读全文
摘要:我要动态生成mfc菜单,动态绑定响应命令。
首先把菜单关键词和函数指针绑定在map中,
再通过关键词找到函数来执行。
阅读全文
摘要:本以为这么多年C#经验,学个C++没多难,现在发现错了。C++真TM难。
今天遇到int转string绊了半天,方法很多,不知道为什么搞那么复杂,
我只挑最简单易懂的,管他效率不效率的。
阅读全文
摘要:SendMessage函數是阻塞的。PostMessage函數是非阻塞的。
SendMessage:
函数功能:该函数将指定的消息发送到一个或多个窗口。
此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。
而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
阅读全文
摘要:sqlite小巧好用,功能强大。
C++操作sqlite需要sqlite3.h,sqlite3.dll,sqlite3.lib
下载sqlite-dll-win32-x86-3071400.zip和sqlite-amalgamation-3071400.zip
前者可以得到sqlite3.dll和sqlite3.def后者可以得到源码sqlite3.h
后面说明如何编译sqlite3.def生成sqlite3.lib
阅读全文
摘要:今天学了一下在mfc单文档下运行osg.
在osg源码中examples目录有个osgviewerMFC项目,
包括sdi和mdi的示例代码。
阅读全文
摘要:首先到osgChina下载一个安装包,也就是二进制压缩包。
http://www.osgchina.org/projects/osgcn/wikicn/Downloads.php
目前最新是 3.0.1版本
OpenSceneGraph-3.0.1-VS9.0.30729-x86-debug-12741.7z
阅读全文
摘要:1.iterator,const_iterator作用:遍历容器内的元素,并访问这些元素的值。iterator可以改元素值,但const_iterator不可改。跟C的指针有点像
(容器均可以++iter,而vector还可以iter-n, iter+n,n为一整型,iter1-iter2:结果是difference_type类型,表两元素的距离.)
2.const_iterator 对象可以用于const vector 或非 const vector,它自身的值可以改(可以指向其他元素),但不能改写其指向的元素值.
3.const iterator与const_iterator是不一样的:声明一个 const iterator时,必须初始化它。一旦被初始化后,就不能改变它的值,它一旦被初始化后,只能用它来
改它指的元素,不能使它指向其他元素。(因此const iterator几乎没什么用途)
阅读全文
摘要:支持VC2010的类库下载(目前只支持11.2.0.3.0和11.2.0.3.0客户端):
可能是类库与客户端版本不匹配,建立的连接有问题。
debug下运行正常,release下去始终运行出错,不知何故。
阅读全文
摘要:1.新建对话框MFC,在对话框上放一个ListCtrl
ID:IDC_PATH
View:Report
2.为ListCtrl添加变量
右击->添加变量m_wndPath
3.找到OnInitDialog()函数添加如下代码:
4.char被TCHAR取代,若要用则:
项目属性->字符集:使用多字节字符集
阅读全文
摘要:最近项目中用html 来做界面,也就折腾了一下在wxwidget中嵌入浏览器的若干细节工作,mfc也基本是类似的,由于wxwidget中已经做了一个封装wxie,但是开发过程中也遇到了不少问题,在此做一下总结:
阅读全文
摘要:CFileDialog dlg(TRUE,_T("TXT"),_T("*.TXT"),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT ,_T("文本文件(*.TXT)|*.TXT|"));
阅读全文