随笔分类 -  VC++

C++、VC学习吧
摘要:可以看出: 1. 编译期:必须要提供的是类的头文件,以使编译器可以得知类实例的尺寸和内存布局。 2. 链接期:必须要提供的是程序中引用过的,类的成员函数、静态函数、静态数据成员的地址,以使链接器可以正确的生成最终程序。 阅读全文
posted @ 2014-08-10 10:04 大气象 阅读(4472) 评论(0) 推荐(0) 编辑
摘要:左击选中单元格,右击进入编辑状态。 MFC自定义控件的添加方法 C#自定义控件编译后就自动出现在工具箱里。 MFC的自定义控件需要先拖个基类到对话框上,然后添加一个控件变量。 再修改源代码中的控件名为扩展控件名,比如你拖一个Button上去, 添加一个变量m_btnXXX;再修改为你的自定义控件类名: MyButton m_btnXXX; 然后就可以使用了。 阅读全文
posted @ 2014-05-04 09:00 大气象 阅读(2111) 评论(0) 推荐(0) 编辑
摘要:由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。 用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。 阅读全文
posted @ 2013-08-30 21:13 大气象 阅读(40263) 评论(10) 推荐(6) 编辑
摘要:设置CTreeCtrl的Always Show Selection:True CListCtrl的Always Show Selection:False 在NM_CUSTOMDRAW事件中添加如下代码 阅读全文
posted @ 2013-07-24 22:10 大气象 阅读(10096) 评论(4) 推荐(1) 编辑
摘要:用最简单的语言最简短的代码解释单例模式(Singleton) GOF的《设计模式》中这样描述:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 阅读全文
posted @ 2013-03-01 20:40 大气象 阅读(10468) 评论(3) 推荐(2) 编辑
摘要:之前遇到过,搜了半天,没记录,今天又遇到了,又搜了半天。 当你希望打开对话框时,CListCtrl默认选择一项时,这个很有用。 不知道MFC为什么这么简单的功能要搞这么复杂。 可能认识不够吧,总结点是点。 阅读全文
posted @ 2013-02-25 20:36 大气象 阅读(2374) 评论(1) 推荐(0) 编辑
摘要:用两种遍历方法删除两个std::vector的交集。 今天用到vector的find();与erase(); 绊住了一会,觉得即使简单的东西也有必要记一下。 防止下次花时间。 阅读全文
posted @ 2013-02-23 21:29 大气象 阅读(23082) 评论(3) 推荐(1) 编辑
摘要:为对话框添加WM_MOUSEHOVER或WM_MOUSELEAVE消息并不会响应。 MFC需要特殊处理,其中一法就是使用TRACKMOUSEEVENT 阅读全文
posted @ 2013-02-06 20:22 大气象 阅读(10832) 评论(0) 推荐(1) 编辑
摘要:有两种方法: 1.作为成员函数,接受一个参数。 2.作为友元函数,接受两个参数。 阅读全文
posted @ 2013-02-03 20:39 大气象 阅读(21292) 评论(0) 推荐(0) 编辑
摘要:几个要点: 1.对话框中启动新线程。把句柄做参数传递。 2.线程类中定义静态函数,也可以在对话框类中定义个全局函数。 3.线程回调函数必须是静态,且以void*为参数。 4.定义自定义消息,线程类发送,对话框类响应。 阅读全文
posted @ 2012-12-21 20:37 大气象 阅读(7623) 评论(11) 推荐(1) 编辑
摘要:用WM_COPYDATA的前提: 1,知道接收消息进程的句柄。 2,接收消息进程重载了WM_COPYDATA消息映射。 注意乱码的处理。 阅读全文
posted @ 2012-12-17 21:02 大气象 阅读(8126) 评论(1) 推荐(0) 编辑
摘要:CFileDialog会自动记住上一次路径, SHBrowseForFolder需要写个回调函数, 传值给BROWSEINFO 阅读全文
posted @ 2012-12-16 14:01 大气象 阅读(19501) 评论(1) 推荐(2) 编辑
摘要:使用transform();全转化为小写,然后对比string string与CString互相转换: string str; CString s; s = str.c_str(); str = s; 阅读全文
posted @ 2012-12-08 21:28 大气象 阅读(13914) 评论(1) 推荐(0) 编辑
摘要:我知道这种用法,但是不知道这属于什么语法,请教高手。 在源文件.cpp中包含(#include)一个类的头文件,在头文件中使用这个类。 只能在头文件中定义指针变量,并且要用一种特别的语法: 阅读全文
posted @ 2012-12-02 20:34 大气象 阅读(1060) 评论(5) 推荐(0) 编辑
摘要:使用sizeof(array) / sizeof(array[0]) 作为C#开发者,我想说:真TMD麻烦。 阅读全文
posted @ 2012-12-01 21:36 大气象 阅读(9455) 评论(3) 推荐(1) 编辑
摘要:以对话框为父窗口创建的菜单,菜单响应函数可以写在对话框类中。 菜单响应函数的映射和普通菜单响应映射一样。 但是菜单状态更新命令,需要特殊处理。 阅读全文
posted @ 2012-11-28 20:25 大气象 阅读(9178) 评论(0) 推荐(0) 编辑
摘要:char **p和char *p[]基本一样, 区别讲不出来,写个例子体会吧。 char *c与char c[]的区别是前者是常量。 说点题外话,学习编程应该是先学会用,在使用的过程中慢慢领悟。 对于有点难度的知识点,一下子可能没有办法完全搞清楚。 阅读全文
posted @ 2012-11-23 20:38 大气象 阅读(43238) 评论(3) 推荐(1) 编辑
摘要:如果类A希望类B可以访问它的私有成员, 可以把类B设置为友元类。 阅读全文
posted @ 2012-11-22 22:26 大气象 阅读(7900) 评论(0) 推荐(0) 编辑
摘要:主菜单在App里创建,主菜单响应函数不能在普通类中响应。 对话框中的右键菜单,如果把对话框指针传进去。 则右键菜单命令可以在对话框类中实现。 阅读全文
posted @ 2012-11-21 20:42 大气象 阅读(3538) 评论(1) 推荐(0) 编辑
摘要:这里涉及到MFC控件开发许多知识点: 消息响应,窗口绘制,根据鼠标点击位置取得行列信息。 阅读全文
posted @ 2012-11-18 20:33 大气象 阅读(10140) 评论(9) 推荐(2) 编辑

http://www.tianqiweiqi.com