返回首页 我的新博客
摘要: Visual C++ 开发环境为控件提供的自绘制功能使程序员能够充分发挥自己的创造性来设计比较漂亮的程序界面。所谓AVI按钮是指每当鼠标从按钮上经过时就播放一段按钮提示的AVI,在许多的游戏程序以及三维动画软件中(如摩托英豪、Cool 3D等)都广泛的采用了这种AVI按钮。它使得程序的用户界面很具有动感,也使得我们的程序至少看上去更专业,本实例借助Visual C++强大的控件自绘制功能来实现这种... 阅读全文
posted @ 2009-03-13 21:53 buffer的blogs 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 一、SAPI简介 软件中的语音技术包括两方面的内容,一个是语音识别(speech recognition) 和语音合成(speech synthesis)。这两个技术都需要语音引擎的支持。微软推出的应用编程接口API,虽然现在不是业界标准,但是应用比较广泛。 SAPI全称 The Microsoft Speech API.相关的SR和SS引擎位于Speech SDK开发包中。这个语音引擎支持多种语... 阅读全文
posted @ 2009-03-13 21:50 buffer的blogs 阅读(500) 评论(0) 推荐(0) 编辑
摘要: http://www.vckbase.com/code/downcode.asp?id=1556 CButtonST使我目前见过的最强大,功能最全的CButton派生类。撰写本文的目的不在于技术的讨论,而是希望能够为各位提供关于CButtonST的使用参考,以提高编写程序的速度。 下图是用CButtonST做的几个按钮 以下是CButtonST类的一些版本信息,方便大家可以... 阅读全文
posted @ 2009-03-13 11:30 buffer的blogs 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: 一、准备工作(PNG图片透空窗体) 1、图片资源准备工作。首先在Photoshop中编辑所用图片,将这些图片保存成为带透明通道的.png格式(GDI+调用显示时能够透明调背景)。这样程序中图片资源就准备好了。 2、下面开始做好展开此项工作的基本准备工作。创建一个对话框应用程序,名称为Gdi+PNG在VC6.0下的设置:(1)、下载gdiplus forVC6.0的SDK,(总共两兆多)(2)、在C... 阅读全文
posted @ 2009-03-13 10:31 buffer的blogs 阅读(6390) 评论(1) 推荐(2) 编辑
摘要: 派生一个 CButtonEx类 重载 OnCreate 利用GDI+贴图到 按钮上 int CButtonEx::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CButton::OnCreate(lpCreateStruct) == -1) return -1; CRect rc; GetClientRect(&rc);... 阅读全文
posted @ 2009-03-13 10:26 buffer的blogs 阅读(1858) 评论(0) 推荐(0) 编辑
摘要: 最简单的Win32安装程序制作办法I.下载并安装工具 http://download.csdn.net/source/276718 II.利用向导制作安装包1.安装上述两款,启动NIS Edit,在“文件”菜单中“新建脚本:向导”=>下一步”其它就不说了。都是向导式的操作过程。 授权文件那个地方,需要提供一个显示版权的文本文件就行了。 阅读全文
posted @ 2009-03-13 10:08 buffer的blogs 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 从CxImage中将xfile.h、ximacfg.h、ximadef.h、ximage.cpp、ximage.h、xiofile.h、xmemfile.cpp、xmemfile.h拷贝到工程文件夹下并将这些文件加入工程,然后将CxImage各文件夹下Debug文件夹中的lib文件也拷贝到工程下,并在VC中做如下设置 Project Settings |- C/C+... 阅读全文
posted @ 2009-03-13 10:00 buffer的blogs 阅读(3342) 评论(0) 推荐(0) 编辑
摘要: 利用VTK库开发基于MFC的应用程序在用VTK库时,感觉很难开发出MFC的应用程序,VTK提供的vtkMFCWindow类封装的太死,在参考vtkMFCWindow类的实现方式后,通过改造单文档应用程序中的View类,直接在View类中就能响应MFC消息,同时又能利用VTK库本身的东西。在我的例子中,能打开VTK格式文件,同时能用鼠标进行移动旋转,缩放等操作,而且响应右键菜单,插入一个3ds文件。... 阅读全文
posted @ 2009-03-13 09:59 buffer的blogs 阅读(1274) 评论(0) 推荐(0) 编辑
摘要: VTK有源码和二进制版本 二进制版本,主要包括头文件,和库文件。主要用于直接使用VTK来开发自己的系统。 二进制版本也是源码版,经过编译之后得到的 如果安装源码版本的话,还需要自己编译,生成DLL或者LIB,特别麻烦。 不过也有些优点,就是我们需要GCC使用的库,就生成GCC格式的库;我们需要VC6的库,就能生成VC6需要的库。我们需要动态链接库,就生成动态链接库,我们需要静态链接库呢?就为... 阅读全文
posted @ 2009-03-13 09:58 buffer的blogs 阅读(3600) 评论(0) 推荐(0) 编辑
摘要: 1 WPF 的优点1.1 提供更加丰富的用户体验。提供 2D,3D,动画,多媒体的支持。1.2 让程序人员把关注点放到 业务建模和业务逻辑上,把图形部分移给WPF。提高开发效率。少关注技术,多关心业务1.3 能够更好的实现业务逻辑层和表示层的分离。用xmal 描述界面,*.cs 文件来描述后台代码1.4 能够很容易的把客户端程序和浏览器程序集成到一起。桌面应用程序和浏览器应用程序的融合,根据ms ... 阅读全文
posted @ 2009-03-13 09:38 buffer的blogs 阅读(687) 评论(0) 推荐(0) 编辑
摘要: 需求:时候在制作一些特殊的界面时可能要用到异形窗口。解决方案:制一张位图,在位图中指定一个透明色,这个透明色大多作为背景,也就是窗口中要切除的部分,即在一张位图中提取一个区域窗口是一个再方便不过的事情了,实现原理实际上是读取位图中的每个像素和指定的透明色进行对比,如果是相同的颜色就排除,否则就合并起来。 ////////////////////////////////////////////... 阅读全文
posted @ 2009-03-13 09:37 buffer的blogs 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 说明=================================== 您可以使用此滚动条库并且可以跟据需要修改源代码,但请不要随意发布此源代码。请尊重者作原创!此皮肤滚动条库可以在Windows标准控件或非标准控件上使用,如果您对此皮肤滚动条有何建议请随及联系作者. 作者 : 李俊 E-Mail : notoldtree@126.com QQ : 154828 下载地址:h... 阅读全文
posted @ 2009-03-13 09:35 buffer的blogs 阅读(881) 评论(0) 推荐(0) 编辑
摘要: 好了,我来说明一下这个CxImage类的简单用法,希望给刚接触CxImage的朋友带来一些帮助,首先我要说明的是在这里我以CxImage 6.0.0.0版为例(各个版本可有能所不同)。官方下载地址是:http://www.xdp.it/cximage/ 打开工程后可以看到下例这些工程: - CxImage - CxImageCrtDll - CxImageMfcDll - dome - dom... 阅读全文
posted @ 2009-03-13 09:33 buffer的blogs 阅读(4928) 评论(3) 推荐(2) 编辑
摘要: 仅管VC有提供相应的API和类来操作bmp位图、图标和(增强)元文件,但却不支持jpg、gif和png等格式的图片,而这几种格式却是常常要用到的。这里我给大家介绍两种办法来操作这些格式的图片。 1.用API OleLoadPicture来加载JPG、GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPicture类... 阅读全文
posted @ 2009-03-13 08:52 buffer的blogs 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 仅管VC有提供相应的API和类来操作bmp位图、图标和(增强)元文件,但却不支持jpg、gif和png等格式的图片,而这几种格式却是常常要用到的。这里我给大家介绍两种办法来操作这些格式的图片。 1.用API OleLoadPicture来加载JPG、GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPicture类... 阅读全文
posted @ 2009-03-13 08:52 buffer的blogs 阅读(7460) 评论(3) 推荐(0) 编辑
摘要: 相关函数:index, memchr, rindex, strpbrk, strsep, strspn, strstr表头文件:#include C/C++中的Split函数是strtok()其函数原型如下: char * strtok (char * str, const char * delimiters); 函数说明 strtok()用来将字符串分割成一个个片段。参数str指向欲分割的字符... 阅读全文
posted @ 2009-03-12 16:28 buffer的blogs 阅读(10058) 评论(2) 推荐(0) 编辑
摘要: 为了解决代码的可以执行和可重用性,我们一般会利用一些配置来达到我们的目的。目前流行的配置文件有用INI文件的,也有很多利用XML文件的,或者写数据库,写注册表的。像.Net平台可以直接添加应用程序的配置文件(如app.config),同时它还提供了相关的类库来操作这种特定类型的配置文件,在Win32环境下也提供了诸如GetPrivateProfileInt(),GetPrivateProfileS... 阅读全文
posted @ 2009-03-12 13:43 buffer的blogs 阅读(3989) 评论(0) 推荐(0) 编辑
摘要: (一) 先讲一下XML中的物殊字符,手动填写时注意一下。 字符 字符实体& &或&' '或'> >或> 132487A-J crank casing 1 (四) 浏览特定... 阅读全文
posted @ 2009-03-12 13:21 buffer的blogs 阅读(1290) 评论(0) 推荐(0) 编辑
摘要: 1.使用方法详解 在本文开始之处,先简要地说一下何为短字符和宽字符. 所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码.而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE.关于windows下的ASCII和UNICODE的更多信息,可以参考这两本经典著作:《windows 程序设计》,《windows 核心编程》.这两本书关于这两种字符都有比较详细的解说.... 阅读全文
posted @ 2009-03-12 12:54 buffer的blogs 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 以下说明几个消息循环中的常用函数进行对比 1 PostMessage 与 SendMessage 函数对比 SendMessage把消息直接发送到窗口,并调用此窗口的相应消息处理函数,等消息处理函数结束后SendMessage才返回!SendMessage发送的消息不进入系统的消息队列;SendMessage函数有返回值 PostMessage将消息发送到与创建窗口的线程相关联的消息队... 阅读全文
posted @ 2009-03-11 10:10 buffer的blogs 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 一般认为在c中分为这几个存储区 1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静 态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束释放 4另外还有一个专门放常量的地方。 - 程序结束释放 在函数体中定义的变量通常是在栈上,... 阅读全文
posted @ 2009-03-11 10:07 buffer的blogs 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 如何屏蔽键盘的某些按键的消息(基于MFC库): 今天写程序的时候,突然用到要屏蔽Enter和ESC的键盘消息,就从网上搜了搜,发现一种比较简单的方法(不用用到钩子函数)。主要是在MFC工程中的PreTranslateMessage函数中实现。详细代码如下: BOOL Cumini_restoreDlg::PreTranslateMessage(MSG* pMsg) { // TODO: ... 阅读全文
posted @ 2009-03-11 09:57 buffer的blogs 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 前言 程序员最痛苦的事莫过于深陷于BUG的泥潭,我也没少在这上面摔跤。这里,我把自己的一些经验教训总结出来,涉及的内容包括死循环、死锁、内存泄漏以及内存访问错误等,如果能对朋友们有所帮助,那就再好不过了。不过,我不打算按照循序渐进的方式来撰写这些文章 ,而是想到哪写到哪,也许到最后才会形成一个完整的系列。 本节将以一个真实例子讲述如何在VC6环境下调试“Stack Overflow”错误。 问题浮... 阅读全文
posted @ 2009-03-11 09:56 buffer的blogs 阅读(3311) 评论(1) 推荐(0) 编辑
摘要: 微软在wincrypt.h中定义了大量的加解密算法的API,方便了软件加解密的实现,可以使我们不必关注密码学的算法,就可以实现高效率的软件加密。下面通过一个类,对API实现简单的封装。详细代码如下: 头文件:MyCryptOpt.h #pragma once #include "windows.h" #include "wincrypt.h" #define MY_ENCODING_T... 阅读全文
posted @ 2009-03-11 09:54 buffer的blogs 阅读(1466) 评论(0) 推荐(0) 编辑
摘要: TrackMouseEvent函数在鼠标离开某一窗口或在某一窗口上停留超过某一特定时间长度时发送消息。 原型:BOOL TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack); 参数: lpEventTrack:是一个指向TRACKMOUSEEVENT结构体的指针。 返回: 成功的话返回非零值(true),否则返回零(false)。 该函数可以发送的... 阅读全文
posted @ 2009-03-11 09:49 buffer的blogs 阅读(1677) 评论(0) 推荐(0) 编辑
摘要: 最近我发现我那个程序泄露严重,手动也查不出来。指针乱指。所以刚下了个BoundChecker 6.0 版的 嘿嘿ie 在网上看到了它的用法,感觉还不错。 BoundsChecker用法 http://blog.sina.com.cn/u/53d9f7e9010007fz BoundsChecker 是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。Bounds... 阅读全文
posted @ 2009-03-11 09:45 buffer的blogs 阅读(708) 评论(0) 推荐(0) 编辑
摘要: BoundsChecker采用一种被称为 Code Injection的技术,来截获对分配内存和释放内存的函数的调用。简单地说,当你的程序开始运行时,BoundsChecker的DLL被自动载入进程的地址空间(这可以通过system-level的Hook实现),然后它会修改进程中对内存分配和释放的函数调用,让这些调用首先转入它的代码,然后再执行原来的代码。BoundsChecker在做这些动作的... 阅读全文
posted @ 2009-03-11 09:43 buffer的blogs 阅读(883) 评论(0) 推荐(0) 编辑
摘要: 我学VC从VC知识库中得到不少好处,相来都是一些热心朋友们的帮助,在此表示感谢!本工程可分五步:1、建一个基于对话框的程序TipTest,在CTipTestDlg中增加成员变量:CToolTipCtrl m_tip[2],CWnd *m_pSub[2];2、在CTipTestDlg::OnInitDialog()函数中增加如下代码: pSub[0] = GetDlgItem(I... 阅读全文
posted @ 2009-03-11 09:39 buffer的blogs 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 相信已经有很多人用过QQ2009了,自然也对其中的UI设计很感兴趣,觉得设计很是完美。但是这是怎么设计的呢?下面我介绍一个用来实现这种效果的设计库——DSkinLite(源于CodeProject)。下面通过一个演示程序来介绍使用过程: 程序中,我主要对主窗口和两个通用对话框(打开对话框和浏览对话框)进行了换肤,这里我所有的窗口都使用了同一个皮肤(定义在XML文件中),通常应该为每个对话框都定... 阅读全文
posted @ 2009-03-11 09:34 buffer的blogs 阅读(1934) 评论(1) 推荐(0) 编辑
摘要: Invalidate(false)不擦除背景,直接画 Invalidate(true)擦除背景 InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效 InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。 Invalidate()之后:(MFC的,顺便了)OnPaint()... 阅读全文
posted @ 2009-03-11 08:58 buffer的blogs 阅读(3823) 评论(0) 推荐(1) 编辑
摘要: 防 止 密 码 被 非 法 获 取 郝 峰 ----Windows 虽 然 是 一 个 功 能 强 大 的 操 作 系 统, 但 其 存 在 的 一 些 先 天 性 不 足 给 黑 客 留 下 ... 阅读全文
posted @ 2009-03-11 08:49 buffer的blogs 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 在图形图象处理编程过程中,双缓冲是一种基本的技术。我们知道,如果窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新而引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。 因为窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAINT的响... 阅读全文
posted @ 2009-03-09 22:46 buffer的blogs 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 自动启动代码: void CServerApp::SetAutoRun() { HKEY hKey; char* szRegpath = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"; long lRet; // 打开注册表 lRet = Reg... 阅读全文
posted @ 2009-03-09 22:44 buffer的blogs 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 【问题】在以前的双缓冲Demo中,发现这个在移动一张牌的时候,效率还能忍受过去。但是当应用双缓冲技术到显示多张纸牌的时候,我们会发现效率已经不能再让人忍受了。移动纸牌发生飘移;发牌的时候,当把定时器间隔修改为1ms的时候,速度还是很慢。为此需要对双缓冲的效率进行改善。 【改善措施】经过调查,改善的措施具体如下: 1. 将创建内存画布的工作移动到OnSize函数中去做,也就是当窗口大小发生变化的时... 阅读全文
posted @ 2009-03-09 22:42 buffer的blogs 阅读(642) 评论(1) 推荐(1) 编辑
摘要: 把window线程间传送消息仔细的看了一遍,觉得以前的理解很不深刻。说一说对PostThreadMessage的理解。   PostThreadMessage是一个线程体发送一个消息到指定的线程ID,其原型如下: BOOL PostThreadMessage( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam ); 这个函数既可以发送消息... 阅读全文
posted @ 2009-03-09 22:40 buffer的blogs 阅读(1892) 评论(0) 推荐(0) 编辑
摘要: 消息映射、循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息,所以我们必须在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。通常的做法是采取以下步骤:   第一步:定义消息。   推荐用户自定义消息至少是WM_USER+100,因... 阅读全文
posted @ 2009-03-09 22:37 buffer的blogs 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 1、 对于一个窗口如何进行操作呢,首先要得到其使用句柄,我们可以用FindWindow()函数来获取当前窗口句柄,具体使用如下:   HWND hFig = ::FindWindow(NULL,HWND);   如果得到找到,则返回窗口的句柄,否则返回NULL。 当然我们可以使用 SetWindowPos(HWND hWnd, HWND hWndIsertAfter, int X, int Y, ... 阅读全文
posted @ 2009-03-09 22:35 buffer的blogs 阅读(11101) 评论(1) 推荐(0) 编辑
摘要: /****************************************************************************************************************/ 1、我用的时候写个小程序 char* CStringToChar(CString & str) { char temp[... 阅读全文
posted @ 2008-10-05 22:26 buffer的blogs 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: GPS串口数据接收程序实例 摘 要:目前GPS(全球定位系统)定位应用市场日趋成熟,正在进入应用的高速发展时期。本文以一款EverMore公司的GM-X205GPS接受模块为例,介绍了其数据格式,以及应用PIC16F874单片机RS232串口进行数据接收的程序。 1、 GPS应用简介 近年来GPS系统,已经在大地测绘、海上渔用、车辆定位监控、建筑、农业等各个领域得到广泛应用。从九十年代... 阅读全文
posted @ 2008-08-31 21:59 buffer的blogs 阅读(1412) 评论(1) 推荐(0) 编辑
摘要: 1.const的用法: ... 阅读全文
posted @ 2008-08-31 13:33 buffer的blogs 阅读(409) 评论(0) 推荐(0) 编辑