-
用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++ DataGrid ADODC Trasform分析数据的例子
VC++ Trasform分析数据的例子,涉及到DataGrid ADODC等控件的使用方法,测试前请先添加好数据库。程序调试时请注意以下几项:
(1)在程序中选择ResourceView视图,打开“Dialog”节点下的“IDD_TRASFORMDATA_DIALOG”对话框资源,右键单击ADO Data控件,在弹出的菜单中选择Properties菜单项,选择通用选项卡,单击“生成”按钮,在连接选项卡中单击“…”按钮,打开当前文件夹中的Access数据库,单击“测试连接”按钮,单击“确定”按钮。
(2)右键单击DataGrid控件,在弹出的菜单中选择Properties菜单项,选择All选项卡,在DataSource项对应的Value值中重新选择IDC ADODC1项。
- 2023-06-03 16:05:03下载
- 积分:1
-
VC++ SQL数据库提取器(备份、还原、分离数据库)
VC++6.0编写的 SQL数据库提取器,本程序主要实现了备份和还原数据库、附加和分离数据库、提取数据表、导出数据、配置ODBC数据源等功能。
备份和还原数据库:在“选择数据库”下拉列表中选择要备份的数据库,单击工具栏中的备份数据库按钮,打开保存备份文件窗口,保存备份文件即可。还原数据库时,在“选择数据库”下拉列表中选择要还原的数据库,然后单击工具栏中的还原数据库按钮,选择备份文件,即可还原该数据库。
附加和分离数据库:单击附加数据库按钮,选择需要附加的数据库即可。
分离数据库时,在“选择数据库”下拉列表中选择要分离的数据库,然后单击分离数据库按钮即可。
提取数据表:选择要提取的数据库及相应的数据表,然后单击提取表结构按钮,打开“SQL提缺窗口,有两种提取方式,可以提取到Word或Excel中。
导出数据:选择要导出的数据表,单击“导出数据”按钮,打开“数据导出”窗口,有三种提取方式:导出到Word、导出到Excel、导出到文本,选择任意一种,单击“导出”按钮即可。
- 2022-05-23 15:52:48下载
- 积分:1
-
VC++ 使用自定义消息进行线程间的通信
VC++ 使用自定义消息进行线程间的通信,在本例子中,当计数到17的整数倍时,工作线程通过自定义消息与主线程通信。最后会弹出消息框:当前计数器的计数为17的整数倍。计数器有几个选项:高速计数、低速计数,相关参数设置如下:
SpeedControl=1;
GetDlgItem(IDC_RADIO1)->EnableWindow(true);//单选按钮生效
GetDlgItem(IDC_RADIO2)->EnableWindow(true);
GetDlgItem(IDC_RADIO3)->EnableWindow(true);
GetDlgItem(IDC_STAR)->EnableWindow(false);//开始按钮无效
numinfo.pedit=&m_Num;
numinfo.hwnd=GetSafeHwnd();//获取主线程窗口指针
CWinThread* pThread=AfxBeginThread(ThreadFunc,&numinfo);//创建新的线程并开始执行
- 2023-03-13 15:00:04下载
- 积分:1
-
VC++ 使用滚动条和进度条进行范围设置
VC++ 使用滚动条和进度条进行范围设置,实现滚动条与进度条的联动,当拖动滚动条时,进度条的进度会随着滚动条的位置变化而变化,适时显示进度状态。除了水平的滚动条外,右侧是一个垂直纵向的滚动条和进度条,具有同样的功能,很好的模拟了两者的联动。
编写代码时,可以这样定义滚动条和进度条的参数:
m_crlScrollH.SetScrollRange(0,100);//设置水平滚动范围
m_crlScrollV.SetScrollRange(0,100);//设置垂直滚动范围
m_crlScrollH.SetScrollPos(0);//设置水平滚动控件初始值
m_crlScrollV.SetScrollPos(0);//设置垂直滚动控件初始值
m_ctlProgressH.SetRange(0,100);//设置水平进度条的范围
m_ctlProgressV.SetRange(0,100);//设置垂直进度条的范围
m_ctlProgressH.SetPos(0);//设置水平进度条的初始位置
m_ctlProgressV.SetPos(0);//设置垂直进度条的初始位置
以上代码并不是完整的,完整代码请下载源码包。
- 2022-04-27 16:24:44下载
- 积分:1
-
VC++ 获取IE运行实例的标题,并修改其标题
VC++ 获取IE运行实例的标题,并修改其标题,大致的实现步骤:设置列表控件的风格、创建COM变量的实例、获取当前正在运行的所有IE窗口的标题信息,刷新列表控件、释放IE实例对象、获得第i个ie实例、获得文档对象、获得文档标题、将IE标题填充到列表框、用户选择指定的IE标题项,然后设定ie标题、销毁窗口时,清除com环境、清除所有com对象。
- 2022-03-31 12:59:54下载
- 积分:1
-
VC++ 设置位置断点跟踪程序
VC++ 设置位置断点跟踪程序,利用随机产生的数组来测试断点跟踪的效果,具体的实现代码:
srand( (unsigned)time( NULL ) );//产生随机种子
int array[number];
CString str1,str2;
str1="原始顺序:";
for(int i=0;i {
array[i]=rand();//设置条件断点
str2.Format("%d ",array[i]);
str1+=str2;
}
pDC->TextOut(20,10,str1);//输出原始数组顺序
BubbleSort(array, 1, number);
str1="排序顺序:";
for( i=0;i {
str2.Format("%d ",array[i]);
str1+=str2;
}
pDC->TextOut(20,30,str1);//输出排序后的数组顺序
- 2022-03-21 21:04:24下载
- 积分:1
-
vc++CThreadEx范例源码
vc++CThreadEx范例源码,创建两个线程分别显示不同的图片,形成交替显示的效果,演示了线程同步和异步,并涉及到定时器的使用。在交替显示图片时,每半秒触发定时器,演示了在一个周期内创建线程、启动线程、向工作线程发出退出命令、等待工作线程、销毁工作线程、主线程停止交替显示,i交替取值0和1、解除同步、检验是否有消息到达等各个环节的实现代码。
- 2022-03-03 18:54:02下载
- 积分:1
-
VC++ 6.0 定时执行任务(关机、重启等)编写实例
VC++ 6.0 定时执行任务编写实例,程序运行时显示托盘图标和右键菜单,请设置好时间和需要执行的外部文件路径及文件名,默认情况下是执行外部任务,可选择执行关机、重启、注销等任务,然后启动定时程序,在仅剩1分钟时,程序会显示自动重启警告:计算机将于1分钟内重启,是否取消重启?按"是"则取消自动重启.若允许自动关闭,请保存尚未关闭的程序!"。
本定时程序时间的设置可精确到日期、时间、秒,编写步骤:
①设置任务执行的日期时间.
②选择关机,注销,重启,任务模式.
③选择了任务模式,需要设置任务路径.
④按下"启动定时"按钮.
⑤关机前1分钟不段提示是否关机或重启,如果用户一直未取消,电脑将于1分钟内关机或重启.有如下代码可参考:
if(shutTime < CTime::GetCurrentTime())
{
MessageBox("设置的时间不能早于当前系统时间!");
}
else
{
CString bb;
cButton->GetWindowText(bb);
if(bb == "启动定时")
{
if(radio == 1)
{
MessageBox("定时关机已启动!","定时关机已启动");
}
else if(radio == 2)
{
MessageBox("定时注销已启动!","定时注销已启动");
}
else if(radio == 3)
{
MessageBox("定时重启已启动!","定时重启已启动");
}else if(radio == 4)
{
CString command = "";
GetDlgItemText(IDC_EDIT2,command);
if(command == "")
{
MessageBox("请选择要执行的文件!");
return ;
}else
{
MessageBox("定时任务已启动!","定时任务已启动");
}
}
SetTimer(1,1000,0);
AfxGetApp()->m_pM
- 2022-10-17 12:35:03下载
- 积分:1
-
收集3个与进程相关的VC++源代码
收集3个与进程相关的VC++源代码,主要是进程的创建、进程控制、控制其他进程这三个源码,每一个在VC6.0环境下都可以顺利编译,这些例子都不复杂,因此是初学者学习VC++很不错的范例。
- 2022-04-26 15:50:40下载
- 积分:1