
VC++技术
文章平均质量分 72
JamesXing
这个作者很懒,什么都没留下…
展开
-
在vs2005中配置directshow开发环境(转载)
作者:liguisen Blog:http://blog.youkuaiyun.com/liguisen先介绍系统环境:XP Professional sp2visual studio 2005 version 8.0.50727.42DirectX 9.0(9.0b) SDK Update - (Summer 2003)首先,就是编译baseclasses,什么是bas转载 2008-10-07 11:07:00 · 1267 阅读 · 0 评论 -
点对点多线程断点续传的实现
在如今的网络应用中,文件的传送是重要的功能之一,也是共享的基础。一些重要的协议像HTTP,FTP等都支持文件的传送。尤其是FTP,它的全称就是“文件传送协议”,当初的工程师设计这一协议就是为了解决网络间的文件传送问题,而且以其稳定,高速,简单而一直保持着很大的生命力。作为一个程序员,使用这些现有的协议传送文件相当简单,不过,它们只适用于服务器模式中。这样,当我们想在点与点之间传送文件就不适用了转载 2008-01-10 15:38:00 · 839 阅读 · 0 评论 -
使用自绘的按钮,怎样给他添加位图
class CIEButton: public CButtonvoid CIEButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { // TODO: Add your code to draw the specified item CDC ButtonDC;转载 2008-01-10 15:35:00 · 1030 阅读 · 0 评论 -
GAPI简介
GAPI简介一 概述同所有的Windows平台一样,WinCE平台通过GDI实现图形和文字的绘制工作,但是由于其中存在大量的转换和判断,导致其速度相对比较慢。为了提高渲染速度,微软提出了DirectDraw和Direct3D,然而对于嵌入式系统的WinCE,在WinCE5.0版本前是不能使用的。为此,微软在WinCE3.0后提供了GAPI来直接提供了对于帧缓存和按键输入的管理功能。转载 2008-01-10 14:52:00 · 14881 阅读 · 0 评论 -
VC中使用ListCtrl经验总结
ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。 先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话的使用。其次,我们这里用条款一,条款二来描述第一点,第二点,这转载 2008-01-09 18:02:00 · 1334 阅读 · 0 评论 -
HTTP服务器上断点下载文件
从HTTP服务器上下载一个文件有很多方法,“热心”的微软提供了 WinInet 类,用起来也很方便。当然,我们也可以自己实现这些功能,通过格式化请求头很容易就能实现断点续传和检查更新等等功能 。 连接主机 格式化请求头 设置接收,发送超时 要想从服务器下载文件,首先要向服务器发送一个请求。HTTP 请求头由若干行字符串组成。下面转载 2008-01-09 17:59:00 · 1702 阅读 · 0 评论 -
利用键盘钩子开发按键发音程序
一、前言一日,看见我妈正在用电脑练习打字,频频低头看键盘,我想:要是键盘能发音的话,不就可以方便她养成"盲打"的好习惯吗?光想不做可不行,开始行动(您可千万别急着去拿工具箱啊^_^)...按键能发音,其关键就是让程序能够知道当前键盘上是哪个键被按下,并播放相应的声音,自己的程序当然不在话下,那么其它程序当前按下哪个键如何得知呢?利用键盘钩子便可以很好地解决。二、挂钩(HOOK)的基本原理转载 2008-01-09 17:57:00 · 799 阅读 · 0 评论 -
VC遍历窗体控件的实现
// 遍历得到页面中的所有Button控件,依次设定其样式和颜色 CWnd* pWnd = GetWindow(GW_CHILD); char cClassName[255]=...{0}; while(pWnd) ...{ GetClassName(pWnd->GetSafeHwnd(),cClassName,255);//得到控件的类名,主要转载 2008-03-25 17:55:00 · 2550 阅读 · 0 评论 -
三个实现透明效果的方法(我还没有试过,不保证质量)
方法一: void CChessBoard::FillMarkedChess(CDC *pDC,CRect rect, COLORREF color) { //color为半透明的底色 COLORREF bkcolor; int R1,G1,B1,R2,G2,B2; R1=color&255; G1=(color>>8)&255; B1=转载 2007-12-26 16:31:00 · 1293 阅读 · 2 评论 -
透明窗体的又一实现
前面拜读过本站无数高手的许多好文章,受益非浅,首先向各位大侠致敬!今天编程偶有小得,不敢独享,特拿出来与各位共享,希望对某些朋友有些许帮助。 透明窗体的问题相信大家已经很熟悉了,前面的几期在线杂志也有几篇详尽的教程,总结一下就是通过SetWindowRgn这个函数来实现,具体的裁切框用CRgn来生成,比较简单的 象圆,椭圆,圆角窗口等CRgn类都提供了相应的生成方法,我们如果想根据自己的图片来生转载 2007-12-26 11:28:00 · 904 阅读 · 0 评论 -
半透明及透明位图的实现技术
绘制半透明位图 有的时侯,我们希望显示一幅半透明的位图。也就是说我们将一幅位图B显示到A位图上,又希望透过B位图看到A位图的一部分图像但不是全部。比如A位图是一幅曲线图,B是一幅提示位图,我们想在显示提示的同时看到已显示的曲线,但不需要曲线的背景,就需有用到半透明位图。曲线看上去就象从B位图中渗透过来,其实半透明技术就是一种渗透技术,渗透公式我们可选用多种,在这里我们选用(A AND转载 2007-12-25 17:29:00 · 1450 阅读 · 0 评论 -
Visual C++进程间数据通信的实现
Visual C++进程间数据通信的实现2006-01-19 08:43 作者: 刘涛 出处: 天极开发 责任编辑:方舟 在Windows系统中,各个应用程序(进程)之间常常需要交换、传递数据,这就要解决进程间的数据通信问题。在最初的16位Windows3.x系统中,所有Windows应用程序共享单一地址,任何进程都能够对这一共享地址空间的数据进行读写操作。转载 2008-03-03 10:43:00 · 3036 阅读 · 1 评论 -
几种STL容器的基本用法[资料]
几种STL容器的基本用法[资料]一、原型与构造函数Vector的原型可定义为vector > 其构造函数为vector() //空的vector(al) //指定一种allocatorvector(n) //用默认T()初始化n个元素vector(n, val) //用Val初始化n个元素转载 2008-01-10 15:41:00 · 1153 阅读 · 0 评论 -
人工神经网络简介
人工神经网络简介作者 Andrew Blais 神经网络也许是计算机计算的将来,一个了解它的好方法是用一个它可以解决的难题来说明。假设给出 500 个字符的代码段,您知道它们是 C、C++、Java 或者 Python。现在构造一个程序,来识别编写这段代码的语言。一种解决方案是构造一个能够学习识别这些语言的神经网络。这篇文章讨论了神经网络的基本功能以及构造神经网络的方法,这样就可以在编码时转载 2008-01-10 15:43:00 · 2136 阅读 · 0 评论 -
C++预处理
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义转载 2008-01-15 10:44:00 · 1146 阅读 · 0 评论 -
#define和typedef的区别
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句中的数字9 写成字母g 预处理也照样带入。2)typedef是在编译时处理的。它在自己的作用域内给一转载 2008-01-10 15:40:00 · 804 阅读 · 0 评论 -
ftp协议实现多线程断点续传
ftp下载的好处我在这里就不多说了,许多工程会把ftp下载作为一个重要的功能来实现。微软提供的WinInet类可以利用下面这些函数:InternetOpen;InternetConnect;GetCurrentDirectory;SetCurrentDirectory;FtpGetFile; 很容易实现ftp的下载,网上关于这方面的文章也很多。但是要实现ftp的多线程下载转载 2008-01-10 15:36:00 · 1266 阅读 · 0 评论 -
C++中const总结
随着对多线程学习的深入,你可能觉得需要了解一些有关线程共享资源的问题. .NET framework提供了很多的类和数据类型来控制对共享资源的访问。 考虑一种我们经常遇到的情况:有一些全局变量和共享的类变量,我们需要从不同的线程来更新它们,可以通过使用System.Threading.Interlocked类完成这样的任务,它提供了原子的,非模块化的整数更新操作。 还有你可以使用System.转载 2008-01-10 15:25:00 · 872 阅读 · 0 评论 -
GetLastError返回值的意义
〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无效。〖14〗-存储器不足,无法完成此操作。〖15〗-转载 2008-01-09 17:51:00 · 1928 阅读 · 0 评论 -
嵌入式下高效率半透明的实现
在嵌入式系统下,由于嵌入式系统本身资源内存的局限性,导致在Windows下能够轻松实现的功能和效果在嵌入式系统下实现起来却变得非常困难。而且,WinCE下,由于微软为了保证WinCE这个OS操作系统能够足够小,所以减少很多Windows的组件,只保留了OS很核心的一部分。在这种情况下,WinCE操作系统能够缩减到足够小 。但是,微软的这种做法却给我们编程人员带来极大的不便。导致原先我们Window转载 2008-01-10 15:53:00 · 1349 阅读 · 0 评论 -
WINCE应用的UI实现方案 —— 下篇:代码一小步,项目进度管理一大步
当我试验SetWindowPos成功时,我感觉到对我这个应用开发组来说,这是一次革命了。项目进度上的革命。按照目前的进度安排方式,事业部发布设计需求后各部门的工作状态时这样的:(1) 软件研发,首先去确定底层接口,比如要调用BSP的哪些DeviceIoControl,要用哪些协议栈,要约定哪些注册表键值,约定各应用的进程间通信。(2) 工业设计中心, 同步开始设计UI图片。(3) 测试组,同步开始转载 2008-01-10 15:51:00 · 1184 阅读 · 0 评论 -
WINCE应用的UI实现方案 —— 中篇:GWES方案上几技术难点的解决
这里谈论的所谓技术难点,其实根本不值一提。只不过微软定了一套游戏规则,我们目前不清楚这套游戏规则,花时间去摸索而已。1、BUTTON的动画效果我们用了GWES里提供的BUTTON类,在WINCE PRODUCT DOCUMENT里的位置是ms-help://MS.WindowsCE.500/wceshellui5/html/wce50grfButtonReference.htm里面并转载 2008-01-10 15:50:00 · 1463 阅读 · 0 评论 -
WINCE应用的UI实现方案 —— 上篇:几种UI实现方案比较
一、MFC的硬伤在接手现在这个项目之前,我对WINDOWS平台上的UI开发还是个白痴,除了MFC,就只知道GDI了。而且居然大言不惭地说用MFC只能画画灰色的对话框和按钮。但不论如何,在嵌入式这种对成本极度敏感的项目上,我是不会拍板用MFC的。假设极端情况,定制后的系统是31.8M,我放一个ARMV4I上的MFC DLL进去,大概500多K,那么只有两种选择,要么把32M的FLASH换成64M转载 2008-01-10 15:48:00 · 2315 阅读 · 0 评论 -
自绘按钮的实现
自绘按钮的实现作者:杜修杏下载本文示例工程如果你希望能够在自己的程序中表现出新意,那么你一定不会仅仅满足于MFC提供那些标准控件。这时,我们就必须自己另外多做些工作了。就改变控件外观这一点来说,主要是利用控件的自绘功能(Owner Draw)实现的。本篇将和各位一起定义一个XP风格的CXPButton按钮类,目的不在于介绍CXPButton类的使用技巧,而在于向各位阐述实现自绘按钮的方法。转载 2008-01-10 15:45:00 · 3765 阅读 · 0 评论 -
Windows® CE 系统中的同步机制
摘要Windows® CE 是微软系列嵌入式平台所采用的操作系统内核。本文讨论了 WinCE 进程/线程之间的同步机制,给出了它们的典型应用场景。这些同步机制包括临界区、互斥体、信号量、事件、互锁函数和消息队列等。关键字:同步,临界区,互斥体,信号量,事件,消息队列Keywords: Synchronization, Critical Section, Mutex, Semaphore转载 2008-01-10 15:44:00 · 1280 阅读 · 0 评论 -
摆脱DLL"地狱"的困扰之获取进程信息
摆脱DLL"地狱"的困扰之获取进程信息2006-01-09 09:48 作者: NorthTibet编译 出处: VCKBASE 责任编辑:方舟 摘要 本文讨论用各种不同的方法来获取系统中运行的进程信息,比如,进程列表,枚举列表中的进程,然后获取关于进程的详细信息。 如何获取运行进程列表 有三种方法来获取Win32运行进程的信息,参见表一: (表一)转载 2008-03-03 10:35:00 · 1217 阅读 · 0 评论 -
获取进程的模块信息
【简 介】首先通过CreateToolhelp32Snapshot函数创建一个进程的快照,然后通过调用Process32First使用快照返回的句柄对进程进行遍历,相关的信息转载 2008-03-03 10:57:00 · 1651 阅读 · 0 评论 -
MFC控件篇之利用AppWizard创建并使用ToolBar StatusBar Dialog Bar
利用AppWizard创建并使用ToolBar StatusBar Dialog Bar 运行时程序界面如界面图,该程序拥有一个工具条用于显示两个命令按钮,一个用于演示如何使按钮处于检查状态,另一个根据第一个按钮的状态来禁止/允许自身。(设置检查状态和允许状态都通过OnUpdateCommand实现)此外Dial转载 2007-08-03 13:28:00 · 2314 阅读 · 0 评论 -
MFC控件篇之StatusBar
Status Bar 状态条用于显示一些提示字符。MFC中使用CStatusBar类来封装状态条控件的各种操作。通过调用BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, UINT nID =转载 2007-08-03 13:25:00 · 3221 阅读 · 0 评论 -
MFC控件篇之ToolBar
Tool Bar 工具条也是常用的控件。MFC中使用CToolBar类来封装工具条控件的各种操作。通过调用BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP, UINT nID = AFX_IDW_TOOL转载 2007-08-03 11:21:00 · 2099 阅读 · 0 评论 -
MFC控件篇之TabCtrl
Tab CtrTab属性页控件可以在一个窗口中添加不同的页面,然后在页选择发生改变时得到通知。MFC中使用CTabCtrl类来封装属性页控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些属性页控件的专用风格: TCS_BUTT转载 2007-08-03 11:19:00 · 2611 阅读 · 2 评论 -
MFC控件篇之ListCtrl
List Ctrl 列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UI转载 2007-08-03 11:18:00 · 1722 阅读 · 1 评论 -
MFC控件篇之TreeCtrl
Tree Ctrl树形控件TreeCtrl和下节要讲的列表控件 ListCtrl在系统中大量被使用,例如Windows资源管理器就是一个典型的例子。树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点。MFC中使用CTreeCtrl类来封装树形控件的各种操作。通过调用BOOL Create( DWORD dwStyle,转载 2007-08-03 11:17:00 · 1818 阅读 · 0 评论 -
有关注册表API函数
注册表的操作,API为我们提供了大约25个函数。他提供了对注册表的读取,写入,删除,以及打开注册表及键值时所有函数,并且可以达到对注册表的备份,连接和对远端注册表进行查看等等。注册表对整个系统十分重要,你在进行操作时,一定要先考虑清楚。这些函数有: RegCloseKey RegConnectRegistry RegCreateKey RegCreateKeyEx RegDeleteKey转载 2007-08-03 11:13:00 · 992 阅读 · 0 评论 -
创建有个性的对话框之MFC篇之一
创建有个性的对话框之MFC篇2006-7-5 13:18:01 来源:csdn<!--google_ad_client = "pub-1900578892398552";google_ad_width = 300;google_ad_height = 250;google_ad_format = "300x250_as";google_ad_type = "text_i转载 2007-08-01 10:59:00 · 1188 阅读 · 0 评论 -
创建有个性的对话框之MFC篇之二
创建有个性的对话框之MFC篇2006-7-5 13:18:01 来源:csdn<!--google_ad_client = "pub-1900578892398552";google_ad_width = 300;google_ad_height = 250;google_ad_format = "300x250_as";google_ad_type = "text_i转载 2007-08-01 11:02:00 · 1232 阅读 · 0 评论 -
BMP位图文件结构及VC操作
BMP位图文件结构及VC操作 朱永辉 ---- 用普通方法显示BMP位图,占内存大,速度慢,在图形缩小时,失真严重,在低颜色位数的设备 上显示高颜色位数的图形图形时失真大。本文采用视频函数显示BMP位图,可以消除以上的缺点。 ---- 一、BMP文件结构 ---- 1. BMP文件组成转载 2007-07-31 10:23:00 · 1332 阅读 · 0 评论 -
创建对话框时的长度单位
创建对话框的时候,在右下方会有一个长x宽的值,这个值的单位为:DLU1个横向DLU = 对话框字体宽度/4 1个纵向DLU = 对话框字体高度/8 与对话框字体有关,不是一绝对单位.原创 2007-07-27 21:03:00 · 953 阅读 · 0 评论 -
MFC控件篇之对话框
从VC提供的MFC类派生图中我们可以看出窗口的派生关系,所有的窗口类都是由CWnd派生。所有CWnd的成员函数在其派生类中都可以使用。本节介绍一些常用的功能给大家。 改变窗口状态:BOOL EnableWindow( BOOL bEnable = TRUE );可以设置窗口的禁止/允许状态。BOOL IsWin转载 2007-08-03 13:31:00 · 2237 阅读 · 0 评论 -
MFC控件篇之对话框中的消息与数据
在对话框中进行消息映射 利用对话框的一个好处是可以利用ClassWizard对对话框中各个控件产生的消息进行映射,ClassWizrd可以列出各种控件可以使用的消息,并能自动产生代码。在本节中我们以一个例子来讲解如何在对话框中对子窗口消息进行映射同时还讲解如何对对话框中的子窗口进行初始化。 首先我们产生编辑好一个转载 2007-08-03 13:33:00 · 2449 阅读 · 0 评论