123456

 

2010年11月24日

CListCtrl插入大数据量时避免闪烁的有效方法

摘要: 从CSDN好友博客上挖掘的知识,自己学习兼测试了下,笔记于下:LockWindowUpdate:Disables drawing in the given window,锁定指定窗口,禁止它更新。Only one window can be locked at a time,只能有一个窗口处于锁定状态。SetRedraw:An application calls SetRedraw to allow changes to be redrawn or to prevent changes from being redrawn.应用程序调用SetRedraw以允许重画变化或防止被重画。 第一步,先 阅读全文

posted @ 2010-11-24 19:03 hgy413 阅读(366) 评论(0) 推荐(0) 编辑

拖动效果的一个实现方案

摘要: 以下转自好友博客: 拖动是界面编程频繁使用的一个效果,在windows系统下可谓大行其道。纵观时下的应用软件几乎各个都支持各种各样拖动的效果,windows7更是把拖动做到了极致。其实说起来拖动的实现也很简单,对于有句柄的对象都可以通过MoveWindow或SetWindowPos实现位置变动,而没有句柄的对象实现拖动无非就是做些参数修改,说到底实现拖动就是在OnLButtonDown、OnMouseMove和OnLButtonUp中处理数据,当然你可以使用鼠标右键甚至中建消息来实现,基本原理是一样的。 基本原理是不难,不过要想做到效果二字就要动一番脑筋了。让我们来看看win7下的图标拖放,鼠 阅读全文

posted @ 2010-11-24 16:40 hgy413 阅读(274) 评论(0) 推荐(0) 编辑

2010年11月23日

C++拷贝构造函数(深拷贝,浅拷贝)

摘要: 对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include using namespace std;class CExample {private: int a;public: CExample(int b) { a=b;} void Show () { coutusing namespace std;class CExample {private: int a;public: ... 阅读全文

posted @ 2010-11-23 15:50 hgy413 阅读(118) 评论(0) 推荐(0) 编辑

对C++多态性的一点理解

摘要: 抽空总结下对一直以来对C++多态性的一点个人理解:1.什么叫早绑定和晚绑定?早绑定指在对象声明的时候就和它的类型建立了关联。晚绑定是指代码在运行时再检查对象是否提供了我们所需要的方法和属性。静态关联(早绑定)和动态关联(晚绑定)。2.什么叫多态性?一个接口,多种方法。3.多态性和非多态性的区别?多态与非多态的实质区别就是函数地址是早绑定还是晚绑定。如果函数的调用,在编译器编译期间就可以确定函数的调用地址,并产生代码,是静态的,就是说地址是早绑定的。而如果函数调用的地址需要在运行时才确定,这就属于晚绑定。4.一个不带虚函数的类(无成员变量)大小?空类大小不为0,为1。5.一个带虚函数的类(无成员 阅读全文

posted @ 2010-11-23 10:27 hgy413 阅读(215) 评论(0) 推荐(0) 编辑

2010年11月18日

用VC资源动态链接库解决国际化问题

摘要: 随着计算机应用的普及,应用软件跨国使用越来越频繁,如何实现应用软件的国际化,成为许多程序员关心的问题。这种国际化问题相对使用某一种语言的用户来说,就是本地化问题。本地化的含义比仅仅翻译菜单栏和对话框的文本内容要广泛得多,如特定文化背景的位图和图标对不同的人来说,可能会有不同的含义。在Windows系统中,应用程序开发者可以通过利用VC动态链接库,只用一套源代码就能简洁地支持多种文字。本文介绍用VC的资源动态链接库解决国际化问题的具体方法和步骤。 实现技术 利用VC编程,可以把所有的可见资源封装在一个资源动态链接库中,以简化本地化工作。一般情况下,资源包含在应用程序中,但也可以通过调用AfxS. 阅读全文

posted @ 2010-11-18 17:21 hgy413 阅读(202) 评论(0) 推荐(0) 编辑

解决DLL和主调程序的资源冲突及如何使用Dll的资源

摘要: 工具:vs2005 在要导出的MFC类加上AFX_EXT_CLASS,即可形成导出类.1.为什么引起资源冲突? 主调程序和每个DLL都有一个全局唯一的HINSTANCE句柄(HMODULE模块),不管是在主调程序还是DLL中,加载资源都要参考HINSTANCE。主调程序和DLL都可能包含自己的资源,这些资源的ID却不是全局的,可能出现主调程序和某个DLLHINSTANCE中资源ID号相同的情况而发生加载冲突。2.资源冲突引起的后果? 使用了共享的MFC库之后,默认情况下使用主程序的句柄来加载资源,所以如果DLL和主调程序的资源ID相同的话,会默认调用主调程序的资源,表现为:EXE打算调用DLL 阅读全文

posted @ 2010-11-18 17:08 hgy413 阅读(914) 评论(0) 推荐(0) 编辑

2010年11月17日

正则表达式读书笔记

摘要: 初学了正则表达式,笔记如下:/b =>单词的开头或结尾,也就是单词的分界处,单词是由空格,标点符号或者换行来分隔。. =>配除了换行符以外的任意字符,换行符是'/n',ASCII编码为10。* =>指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配..* =>匹配任意数量的不包含换行的字符。例子:/bhi/b.*/bLucy/b=>先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词./d =>匹配一位数字(0,或1,或2,或……)。例子:0/d/d-/d/d/d/d/d/d/d/d =>以0开头,然 阅读全文

posted @ 2010-11-17 11:37 hgy413 阅读(111) 评论(0) 推荐(0) 编辑

2010年11月16日

搜索汉字返回拼音首字母

摘要: 工具:vs2005环境:unicodeDBCS ;double-byte character set,双字节字符集,用于对 Chinese, Japanese and Korean语言支持IsDBCSLeadByte( BYTE ); 如果该字节是DBCS字符的第一个字节,则返回非0值由于原来的搜索匹配占的CPU过高,所以上网查了下资料,换了个简单的搜索,少部分汉字可能无返回.记录如下: bool In(wchar_t start, wchar_t end, wchar_t code){ if(code >= start&&code<=end) { return t 阅读全文

posted @ 2010-11-16 15:41 hgy413 阅读(180) 评论(0) 推荐(0) 编辑

2010年11月15日

用文件映射(File Mapping)实现进程间内存共享

摘要: 我们知道,在Windows中的每个进程都有自己独立的内存空间。该独立的内存空间包含了所有的可执行模块或DLL模块的代码和数据以及动态内存分配的空间。每个进程的内存空间只能被该进程访问,其他进程是不能访问的。 如果我们要想在进程间共享内存(也就是创建一块不同进程都能访问的内存),那就必须使用内核对象。因为内核对象由Windows系统内核所拥有,而不是由进程所拥有。 下面就用文件映射(File Mapping)和互斥量(Mutex)两中内核对象来实现简单的进程间内存共享。文件映射(File Mapping)用来开辟共享的内存空间,而互斥量(Mutex)则是用来使读写互斥。 在该例子里,实现了下面5 阅读全文

posted @ 2010-11-15 16:12 hgy413 阅读(241) 评论(0) 推荐(0) 编辑

进程间共享内存

摘要: 简明扼要:1.创建:HANDLE hFileMapping = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 1024, _T("XXXX"));//1024是文件大小,请自定义2.写入:HANDLE hFileMapping1 = OpenFileMapping(FILE_MAP_WRITE, FALSE, _T("XXXX"));void *pMapView = MapViewOfFile(hFileMapping1, FILE_MAP_WRITE, 0, 0, 10 阅读全文

posted @ 2010-11-15 15:45 hgy413 阅读(231) 评论(0) 推荐(0) 编辑

导航