-
用VS2008+ATL开发可以显示Gif的ActiveX控件源码
VS2008%2BATL开发Gif的ActiveX控件%28毛坯%29
创建一个空的解决方案,名称GifSolution。将来包含控件项目和测试项目。新建项目,弹出的对话框中选ATL项目,名称为GifAnimate确定。弹出的对话框中选择DLL服务器(可选允许合并代理存根,这样不会产生代理dll),完成后编译,这样工程框架就完成了。
组件分有窗口的和无窗口的,这里应该用有窗口的,所以添加组件的时候,外观不要基于none,最好基于CStatic。因为gif是动态的,应该用另一个线程绘制,这样不影响主线程响应消息,绘图更加流畅。
为GifAnimate项目添加类-选择ATL控件,点击添加,弹出对话框。
1.本文只是举例说明开发过程,抛砖而已。
2.样例只是框架,不能直接使用,所有代码没有经过测试
3.样例接收器GifSink和属性页卡片没有完成,懒了,呵呵
4.样例背景等很多属性没有实现
5.使用了GDI+,但GDI+的Image类的SetActiveFrame函数有问题,网上貌似没有解决办法。Debug版本不影响使用,Release版本没有测试。如果有兴趣,可以使用IPicture接口,网上很多。
- 2022-03-31 20:14:24下载
- 积分:1
-
VC++ CFileException异常处理用法范例
VC++ CFileException异常处理用法范例,
catch(CFileException* e)
{
switch(e->m_cause)
{
case CFileException::fileNotFound:
{
strMessage.Format("打开文件时发生异常(try/catch):
在指定位置没有找到文件%s
",strFile);
AfxMessageBox(strMessage);
TRACE("即将删除捕获到的异常对象CFileException::fileNotFound
");
AfxMessageBox("即将删除捕获到的异常对象CFileException::fileNotFound");
//删除异常对象
e->Delete();
TRACE("成功删除捕获到的异常对象CFileException::fileNotFound
");
AfxMessageBox("成功删除捕获到的异常对象CFileException::fileNotFound");
break;
}
case CFileException::invalidFile:
{
strMessage.Format("打开文件时发生异常(try/catch):
文件%无效
",strFile);
AfxMessageBox(strMessage);
TRACE("即将删除捕获到的异常对象CFileException::invalidFile
");
AfxMessageBox("即将删除捕获到的异常对象CFileException::invalidFile");
//删除异常对象
e->Delete();
TRACE("成功删除捕获到的异常对象CFileException::invalidFile
");
AfxMessageBox("成功删除捕获到的异常对象CFileException::invalidFile");
break;
}
default:
break;
}
}
- 2022-01-26 02:02:12下载
- 积分:1
-
VC++ 利用Word文档实现打印功能
VC++ 6.0 利用Word文档实现打印功能,本示例是将需要打印的内容导入到Word文档中,然后直接打开Word文档,用户通过Word选择打印功能,打印出内容,其核心的打印是由word完成的,因此你的电脑上需要安装有Word,并且与打印机已连接好。
在调试时注意:时需要导入一个ADO动态链接库msado15.dll,该动态库位于系统盘下的“Program FilesCommon FilesSystemado”目录下。
例:如果你的系统盘为C盘,则该文件位于“C:Program FilesCommon FilesSystemado”目录中。所以需要打开工程文件,并展开“FileView”视图中的“Header Files”节点,然后双击“StdAfx.h”文件,将代码中的“d:Program FilesCommon FilesSystemadomsado15.dll”改为“c:Program FilesCommon FilesSystemadomsado15.dll”。
- 2022-03-05 03:24:43下载
- 积分:1
-
VC++基本鼠标操作——判断鼠标消息
VC++基本鼠标操作——判断鼠标消息,操作方法:按下鼠标左键,移动鼠标即可绘制椭圆,直至释放左键!
void CBaseMouseDemoView::OnMouseMove(UINT nFlags, CPoint point)
{
if(bDrag)
{
ptUp=point;//记录鼠标的当前位置
DrawCircle();//画新圆
}
CView::OnMouseMove(nFlags, point);
}
void CBaseMouseDemoView::DrawCircle()
{
Invalidate(false);
CClientDC dc(this);//获取DC
CRect rect;
GetClientRect(rect); //获取客户窗口区域
CBrush brush(RGB(255,255,255));
dc.FillRect(rect,&brush);//填充背景色为白色
dc.Ellipse(ptDown.x,ptDown.y,ptUp.x,ptUp.y);//绘制矩形
}
- 2022-03-19 16:04:24下载
- 积分:1
-
VC++ 向程序中手工添加WinHelp帮助文件
VC++ 向程序中手工添加WinHelp帮助文件,也就是在程序中调用帮助。一个完善的软件系统,不可缺少帮助系统。本程序演示在VC++开发中,手动从外部添加WinHelp帮助文件,本实例 中是添加调用了Windows7系统中的两个帮助文件,点击菜单项的“帮助”,选择“帮助主题”和“绘制直线帮助”两个功能,即可演示本功能的效果。
- 2022-01-25 14:39:21下载
- 积分:1
-
VC++ ado 登录模块实现范例
VC++ ado 登录模块实现范例,因为使用ADO模块,所以要先初始化COM组件库,然后调用ADO库连接数据库,读取用户名密码是否与数据库的相符,相符则登录成功,不相符则弹出提示信息。本源码比较简单,演示了基本的基于数据库的用户名和密码判断程序,面向VC++初学者吧。
- 2023-03-17 05:10:03下载
- 积分:1
-
VC++ 6.0 改变视图窗口的背景色
VC++ 改变视图窗口的背景色,在窗口的显示区自定义颜色,有兴趣可参考以下代码:
void CFaceControl1View::OnChageviewbk() //改变背景色
{
m_rgbBack=RGB(0,128,128);
Invalidate(true);
}
BOOL CFaceControl1View::OnEraseBkgnd(CDC* pDC)
{
CBrush Brush (m_rgbBack);// 创建一个新的刷子
CBrush* pOldBrush = pDC->SelectObject (&Brush);// 把刷子选入设备环境
//获得需要檫除背景的区域
CRect reClip;
GetClientRect(&reClip);
//重绘该区域
pDC->PatBlt(reClip.left , reClip.top , reClip.Width () , reClip.Height() , PATCOPY);
//释放刷子
pDC->SelectObject (pOldBrush);
return TRUE;//必须返回TURE
}
- 2022-08-04 05:28:13下载
- 积分:1
-
华南理工大VC++ 实验报告:学生信息管理系统 附文档
华南理工大软件学院2016级VC++ 实验报告:学生信息管理系统 附文档,这套系统的功能分为两部分,学生部分和教务管理员部分。包括系统功能模块划分;类体系设计,即主要数据和函数功能描述;界面设计等。
1)学生功能:查看信息:个人基本信息,课表,成绩表等内容
修改信息:可修改个人基本信息
2)教务员功能: 查看信息:学生个人基本信息、课表、成绩等内容
修改信息:学生个人基本信息、课表、成绩等内容
添加学生信息:学生个人基本信息后对同班级同年级的学生进行成绩表和课表的初始化
删除学生全部信息
展示同专业同年级学生的基本信息
对同专业同年级的学生的各科成绩进行排名
3)其他功能:分文件储存不同专业不同年级学生的信息资料,方便信息的处理
添加新年级和专业的数据并初始化
各模块说明:
1)基本信息类:个人基本信息,信息的生成和获取
2)学生信息类:继承于基本信息类,增加学生特有的信息,信息的生成和获取,
- 2022-03-16 11:59:31下载
- 积分:1
-
VC++ 版 GDI+程序设计实例源代码实例集
gdiplus应用实例,在网络上广泛流传的“GDI+程序设计实例源代码”中使用的是C#语言,且封装了开源对象,
源代码主要在 “Form1.cs” 中,其功能的实现形式与.Net的MSDN帮助不同。
作者对该源代码进行了移植,在VC的非 UNICODE 环境下进行了修改,主要处理:
1、提供了一个 multibyte 与 widechar 的转化类 CWideCharString
实现 char* 与 WCHAR* 的转换有许多方法,如:
a) CWideCharString(char*) 得到 WCHAR*
b) L"char* string" 得到 WCHAR*
c) 在非UNICODE环境下,CString(WCHAR*) 得到 char*
2、将原C#中的Math、Shell等对象转换为普通的VC函数,如定义了 rand_Next 等。
3、将原C#代码中的new改为VC的引用或指针,避免了在VC中对new的重载和delete的繁杂调用所带来的内存泄漏
4、定义了一组MyDrawString函数,替换原代码中的 graphics.DrawString(...),保持了原C#代码中DrawString的参数顺序和引用方式,增加了两个 _MakeA_RGB 函数
5、因为 Image::Save 要求保存的文件不得存在,而在演示中可能会反复执行Save,所以提供了 MyImageSave 函数,先判断文件是否存在,若存在则删除,然后 Save.
6、为尽可能保持原代码的风格,在 CWalkLtDemo.cpp 的 OnDraw(...) 函数中提供一个void DoGdiplusDemo(...) 函数,该函数负责向各功能演示函数中传递所需要的绘图区和Graphics实例。
7、在主菜单“查看”项下增加了“GDI+功能演示”和“当前演示的源代码”菜单,并在工具条上增加了相应按钮。
8、程序已在VC6和VC++.NET中进行了完全的测试。
本源码包中使用的 gdiplus*.h 中对 Color 和 Point 进行了重新声明,分别为:
GdiPlusColor 和 PointI
为与MSDN中的 Color 和 Point 相一致,在WalkLtDemoHelp.h中使用了 typede
- 2023-07-17 07:35:04下载
- 积分:1
-
VC++ 读取SQL Server数据库结构
VC++ 读取SQL Server数据库结构,读取指定数据库指定数据表的数据结构,演示中仅是读取出字段名、字段类型和字段类型取值大小,只是演示一种获取字段数据的方法:
m_grid.SetExtendedStyle(LVS_EX_FLATSB
|LVS_EX_FULLROWSELECT
|LVS_EX_HEADERDRAGDROP
|LVS_EX_ONECLICKACTIVATE
|LVS_EX_GRIDLINES);
m_grid.InsertColumn(0,"字段名",LVCFMT_LEFT,100,0);
m_grid.InsertColumn(1,"类型",LVCFMT_LEFT,100,1);
m_grid.InsertColumn(2,"大小",LVCFMT_LEFT,100,2);
- 2022-07-17 13:15:00下载
- 积分:1