
C++ Code
文章平均质量分 72
chu_qun
这个作者很懒,什么都没留下…
展开
-
MFC定时器的应用
在计算机程序设计领域,有很多功能是周期性执行的, 如:数据采集程序,系统时间的显示等。数据采集:周期性地获得现场的物理量信息系统时间的显示:周期性地获得系统时间,并显示出来。完成上述这些功能的代码都是按照一定的时间间隔周期性地执行的,这是就需要用到一个新的组件——定时器(TIMER)。 定时器是Windows系统的资源,转载 2012-06-09 20:17:17 · 882 阅读 · 0 评论 -
如何改变窗口和控件的背景色
CView中响应2个消息: ON_WM_ERASEBKGND() ON_WM_CTLCOLOR()例子:.h afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor ); afx_msg BOOL OnEraseBkgnd(CDC* pDC) ; DECLARE_MESSAGE_MAP()原创 2008-12-03 13:02:00 · 1070 阅读 · 0 评论 -
按钮加载位图的几个方法 vc
一,只加载一张位图的方法:1,装入bmp资源,id为IDB_BMP,按钮的bitmap属性设为true,icon属性为false。 2,CButton *pBtn = (CButton *)GetDlgItem(IDB_BMP); CBitmap bitMap; HBITMAP hBit ; if(bitMap.LoadBitmapW(IDB_NORMAL_BTN)) { hBi原创 2008-12-02 14:34:00 · 9984 阅读 · 3 评论 -
9.2 线程的操作技巧(Visual C++代码参考与技巧大全 )
9.2 线程的操作技巧Windows是一种多任务的操作系统,在Windows的一个进程内包含一个或多个线程。在32位Windows环境下的Win32 API提供了多线程应用程序开发所需要的接口函数,而利用VC++中提供的标准C库也可以开发多线程应用程序,相应的MFC类库封装了多线程编程的类,用户在开发时可根据应用程序的需要和特点选择相应的工具。为了使大家能全面地了解Windows多线程编程技原创 2008-12-01 17:09:00 · 1176 阅读 · 0 评论 -
Unicode :宽字节字符集
?Unicode :宽字节字符集1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数?可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节)字符串。调用strlen函数,无法真正了解字符串中究竟有多少字符,它只能告诉你到达结尾的0之前有多少个字节。2. 如何对DBCS(双字节字符集)字转载 2008-12-01 11:51:00 · 774 阅读 · 0 评论 -
9.1 进程的操作技巧(Visual C++代码参考与技巧大全 )
第9章 进程、线程和DLL操作技巧本章介绍了进程的相关概念和对进程的各种操作,以及进程间通信的方式。进程通常被定义为程序运行的实例,它一般包括两部分,即进程内核和进程地址空间。进程是不活泼的,若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,该线程负责执行包含在进程的地址空间中的代码。线程的操作要注意线程对资源的同步和互斥的情况。最后阐述了动态链接库的创建及调用方式。9.1原创 2008-12-01 17:06:00 · 1940 阅读 · 0 评论 -
第12章 COM组件技术操作技巧(Visual C++代码参考与技巧大全 )
第12章 COM组件技术操作技巧COM是开发组件的一种方法,组件是一些小的二进制程序,它可以为操作系统或者应用程序提供服务。COM技术的发展进一步加强了程序的模块化编程的思想,使应用程序在更容易扩展与升级,具有更好的灵活性和动态性,COM支持了分部使应用程序的开发。12.1 COM的概念和编程技巧COM,即组件对象模型,是关于如何建立组件及如何通过组件建构应用程序的一个规范,是一种跨转载 2008-12-01 17:11:00 · 4792 阅读 · 3 评论 -
BMP位图文件结构及平滑缩放
BMP位图文件结构及平滑缩放作者:unknown 更新时间: 2005-03-14 -- 用普通方法显示BMP位图,占内存大,速度慢,在图形缩小时,失真严重,在低颜色位数的设备上显示高颜色位数的图形图形时失真大。本文采用视频函数显示BMP位图,可以消除以上的缺点。 ---- 一、BMP文件结构 ---- 1. BMP文件组成 ----转载 2008-11-27 11:05:00 · 497 阅读 · 0 评论 -
CreateFileMapping 函数
内存映射API函数CreateFileMapping创建一个有名的共享内存:HANDLE CreateFileMapping(HANDLE hFile, // 映射文件的句柄,转载 2008-11-27 11:02:00 · 453 阅读 · 0 评论 -
MFC的SDI程序的用户命令的处理顺序
C++--MFC的SDI程序的用户命令的处理顺序 1.用户命令处理顺序图2.OnCmdMsg的代码BOOL CFrameWnd::OnCmdMsg(...){ CView* pView = GetActiveView(); if(pView != NULL && pView->OnCmdMsg(...)) r转载 2008-11-25 16:53:00 · 1007 阅读 · 0 评论 -
自己动手做按钮 [转]
自己动手做按钮下载本文所附源代码现在网上发布的自制按钮很多,实际上其制作方法都很类似,以下给出几个关键步骤,具体细节你大可以发挥你的想象力,制作出你想要的各种按钮。 一、用ClassWizard生成一个新类,名字假设起为CMyButton,基类选为CButton; 二、在新类中用ClassWizard添加函数:PreSubclassWindow()、转载 2008-12-04 11:33:00 · 869 阅读 · 0 评论 -
C++的链接错误LNK2005
VC++的链接错误LNK2005 VC++的链接错误LNK2005 编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。弄清楚它形成的原因,就可以轻松解决它了。 造成LNK2005错误主要有以下几种情况: 1. 重复定义全局变量。可能存在两种情况: A、对于一些初学编程转载 2008-12-05 14:01:00 · 1033 阅读 · 0 评论 -
著名的DLL Hell
DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。然而事实却没这么简单,导出类的DLL在维护和修改时有很多地方必需很小心,增加成员变量、修改导出类的基类等操作都可能导致意想不到的后果,也许用转载 2009-09-08 11:49:00 · 808 阅读 · 0 评论 -
WinCE中的消息驱动
WinCE中的消息驱动 Windows CE是事件驱动的操作系统,所有的消息都是使用一个名为MSG的结构来传递。MSG结构共包含六个字段,MSG定义如下:typedef struct tagMSG{HWND hwnd; //接收该消息的窗口的句柄UINT message; //代表消息值,每一个Windows消息都有一个消息值,该值由windows.h头文件中的宏定义来标识WP转载 2009-06-19 16:24:00 · 1257 阅读 · 0 评论 -
Win32应用程序中进程间通信方法分析与比较
Win32应用程序中进程间通信方法分析与比较 1 进程与进程通信 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用编程接口(Application Programming Interface, API)提供了大量转载 2009-06-17 11:08:00 · 953 阅读 · 0 评论 -
WM_COPYDATA 在不同进程间传递数据方式之一
WM_COPYDATA 当我们在两个进程之间传递数据的时候,指针并不好使,因为指针的地址空间是相对于进程的地址空间,如果除了进程,指针就不再具有任何意义。但是,当我们通过WM_COPYDATA传递数据的时候,发现它也是指向指针,它又是怎样做到的呢? 首先我们看看用WM_COPYDATA传递字符串数据时发送方应该怎么做: CString str="hello yuanyua转载 2009-06-16 17:15:00 · 4398 阅读 · 0 评论 -
C++虚函数表解析(转)
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在转载 2009-05-27 17:04:00 · 860 阅读 · 1 评论 -
多线程编程:何时使用同步类
多线程编程:何时使用同步类MFC 提供的六种多线程类分为两类:同步对象(CSyncObject、CSemaphore、CMutex、CCriticalSection 和 CEvent)和同步访问对象(CMultiLock 和 CSingleLock)。当必须控制对资源的访问以确保资源的完整性时,使用同步类。同步访问类用于获取对这些资源的访问权。此文章描述各个类的使用时间。转载 2009-04-30 13:09:00 · 1051 阅读 · 0 评论 -
四大图像库的使用感受:OpenCV/FreeImage/CImg/CxImage
对OpenCV的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法;然后将图像格式和矩阵运算,然后将各个算法的实现函数。我用它来做了一个Harris角点检测器和Canny边缘检测器,总共就花了一个小时(第一次用OpenCV)。而且该库显示图像极其方便,两句话就可以。但该库似乎不大稳定,对32F和16S转载 2008-12-17 13:49:00 · 1222 阅读 · 0 评论 -
//C++中能够读些Unicode格式的文本文件类
//好像C++中没有类能够读些Unicode格式的文本文件,所以我写了下面这个类。用法很简单,大家尝试几下就明白了。#pragma onceclass CStdioFileEx: public CStdioFile{public:CStdioFileEx();CStdioFileEx( LPCTSTR lpszFileName, UINT nOpenFlags );virtual BO转载 2008-12-12 15:11:00 · 1504 阅读 · 0 评论 -
一个完整的共享內存类
一个完整的共享內存类 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyit=window.open(http://www.365ke转载 2008-12-11 11:36:00 · 621 阅读 · 0 评论 -
控制台窗口界面编程控制
控制台窗口界面编程控制 摘要: 文本界面的控制台应用程序开发是深入学习C++、掌握交互系统的实现方法的最简单的一种手段。然而,Visual C++的C++专用库却没有TC所支持的文本(字符)屏幕控制函数,为此本系列文章从一般控制步骤、控制台窗口操作、文本(字符)控制、滚动和移动、光标、键盘和鼠标等几个方面讨论控制台窗口界面的编程控制方法。 在众多C++开发工具中,由于Microsoft本转载 2009-01-17 13:49:00 · 988 阅读 · 0 评论 -
MFC应用程序中处理消息的顺序
MFC应用程序中处理消息的顺序1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc() 该函数负责发送消息到OnW转载 2008-11-19 13:34:00 · 989 阅读 · 1 评论 -
部分MFC和API函数(4)
CWnd类:提供所有窗口类的基本函数CWnd::CenterWindow 相对于指定窗口的中心定位本窗口void CenterWindow(CWnd* pAlternateOwner=NULL);pAlternateOwner 另一个窗口指针,若为NULL,则相对于父窗口定位CWnd::ClientToScreen 将一个点或一个矩形的客转载 2008-09-28 09:15:00 · 748 阅读 · 0 评论 -
部分MFC和API函数(3)
CGdiObject类:GDI绘图工具的基类CGdiObject::DeleteObject 释放与连接的GDI对象相关的所有系统存储,从内存中将其删除 BOOL DeleteObject();返回值:若GDI对象被成功删除,返回非0;否则返回0CGdiObject::GetSafeHandle 获取连接的Window转载 2008-09-28 09:11:00 · 896 阅读 · 0 评论 -
部分MFC和API函数(1)
CArchive类:用于二进制保存档案CArchive::CArchive 建立一个CArchive对象 CArchive(CFile* pFile,UINT nMode,int nBufSize=4096,void* lpBuf=NULL);参数:pFile 指向CFile对象的指针,这个CFile对象是数据的最终源或目的;nMod转载 2008-09-28 09:07:00 · 912 阅读 · 0 评论 -
部分MFC和API函数(2)
CDialog类:所有对话框(模态或非模态)的基类CDialog::DoModal 激活模态对话框,完成后返回对话框结果 virtual int DoModal();返回值:若不可创建对话框,返回-1;若错误返回IOABORT;若用户用“确定”按钮退出对话框,返回IDOK,否则返回IDCANCEL或0CDoc转载 2008-09-28 09:09:00 · 871 阅读 · 0 评论 -
codepage的概念
什么是编码页(code page)? 正如我们所知,计算机只懂得数值。因此,当我们想要它处理文本时,就把一门语言中每个字符都赋以特定的值。简单地说来,这种字符与数值的对照表就叫编码页。在这种情况下,你可能常会听到诸如字符集(charset),字符表(charmap),编码(encoding),编码字符集(coded character set)等术语。虽然彼此间还有一些细微的差异,为理转载 2008-09-23 10:17:00 · 1269 阅读 · 0 评论 -
《UTF-8与GB2312之间的互换》的改进
在UTF-8,与UNICODE之间转换的时候,用二进制运算,代替了字符串的转换。UTF-8一个汉字,用3个字节,而UNICODE用2个字节。 对应关系如下:UTF-8编码: [1,1,1,0,A5,A6,A7,A8], [1,0,B3,B4,B5,B6,B7,B8], [1,0,C3,C4,C5,C6,C7,C8]; 对应的UNICODE编码:[A5,A6,A7,A8,转载 2008-09-23 10:23:00 · 893 阅读 · 1 评论 -
STL中的常用的vector,map,set,Sort用法(转)
STL中的常用的vector,map,set,Sort用法(转)2008-07-03 12:01C++的标准模板库(Standard Template Library,简称STL)是一个容器和算法的类库。容器往往包含同一类型的数据。STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等。.一. vector1.声明: 一转载 2008-09-22 08:55:00 · 807 阅读 · 0 评论 -
utf-8和gb2312的相互转换
最近老是涉及到编码与解码的问题,GB2312转UTF-8,又或者UTF-8转GB2312无意中在优快云闲逛发现了一个CString 转UTF-8的思路,现摘寻下来,免得到时又找不着了.CString UTF8Convert(CString str, int sourceCodepage, int targetCodepage) { int len=str.Get转载 2008-09-23 10:13:00 · 1221 阅读 · 0 评论 -
CString、string 和char* 之间的转换总结(转)
char* 转成CStringØ 可以直接构造.如下: char * p = "test"; CString str(p); Ø 可以用成员函数Format 如下: char* p = "test”; CString str;原创 2008-09-19 17:12:00 · 3515 阅读 · 0 评论 -
error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'
error C2248: CObject::operator = : cannot access private member declared in class CObject 先看一段示例代码: 1 #define C2248_SWITCH 0 2 3 struct A 4 { 5 int a; 6 }; 7 8 struct B 9 {10 CArr转载 2008-10-20 13:56:00 · 2241 阅读 · 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 CObject1> e:/program fil转载 2008-10-07 09:41:00 · 832 阅读 · 0 评论 -
STL,ATL,WTL的联系与区别
STL 即 Standard Template Library STL(标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 STL的转载 2009-01-13 09:21:00 · 3933 阅读 · 1 评论 -
VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结
VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结 MSDN中对于在不同的配置下Link的LIB作了说明:C Runtime Library:开关对应的库版本/MDMSVCRT.LIB多线程DLL的Release版本/MDdMSVCRTD.LIB多线程DL转载 2008-11-20 11:21:00 · 776 阅读 · 0 评论 -
OnEraseBkgnd 的一些理解【转】
OnEraseBkgnd 的一些理解【转】2007-08-18 11:36MFC这个框架不搞清楚其中的来龙去脉,总有你郁闷的时候……Q: OnEraseBkgnd函数中返回TRUE或FALSE有什么区别?A: WM_ERASEBKGNDReturn ValuesAn application should return nonzero if it erases转载 2008-11-18 17:04:00 · 3840 阅读 · 1 评论 -
列表控件ListCtrl用法
首 页界面/窗口网络/通讯数据库组件开发图像/多媒体NET/Web其它技术源码下载资料下载软件共享软件外包曲艺杂谈栏目导航: 首 页 | 界面/窗口 | 列表控件 列表控件ListCtrl用法原作者转载 2008-11-17 16:58:00 · 914 阅读 · 0 评论 -
Unicode详解
Unicode详解版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/02/21/unicode-intro/以及本声明。<!--google_ad_client = "pub-3705997236397030";//文章内容右侧广告google_ad_slot = "1819082211";go转载 2009-01-07 09:55:00 · 1145 阅读 · 0 评论 -
vc++中进程间的通信
vc++中进程间的通信2006-11-23 10:44 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方 另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。属于其它进程转载 2008-11-07 14:40:00 · 629 阅读 · 0 评论