-
VC++ 6.0创建带有文本指示的自定义进度条
VC++ 6.0创建带有文本指示的自定义进度条,自己创建的带有文本的进度条:,
GetClientRect(&rectClient);//获取进度条窗口
CBrush brush;
brush.CreateSolidBrush(::GetSysColor(COLOR_3DFACE));//获取系统画刷
dc.FillRect(&rectClient, &brush);//填充进度条窗口
VERIFY(brush.DeleteObject());//删除画刷
if (m_nCurrentPosition m_nUpper)//进度条没有运行
{
return;
}
brush.CreateSolidBrush(RGB(0, 0,255));//创建蓝色画刷
RECT rectFill;//定义填充区域
float fillwidh=(float)((float)(m_nCurrentPosition-m_nLower)/(float)(m_nUpper-m_nLower))*rectClient.right;
::SetRect(&rectFill,
0,// 左上X坐标
0,//左上Y坐标
(int)fillwidh,//右下X坐标
rectClient.bottom+1);//右下Y坐标
dc.FillRect(&rectFill,&brush);//填充进度条区域
VERIFY(brush.DeleteObject());
CString percent;
percent.Format("已完成:%.0f%%", 100.0*(float)(m_nCurrentPosition-m_nLower)/(float)(m_nUpper-m_nLower));
dc.SetTextColor(RGB(255,0,0));//设置文本颜色
dc.SetBkMode(TRANSPARENT);//透明背景
dc.DrawText(percent, &rectClient, DT_VCENTER|DT_CENTER|DT_SINGLELINE);//显示文本信息
- 2023-06-16 21:25:02下载
- 积分:1
-
VC++ 6.0 演示如何获取打印份数
VC++ 6.0 演示如何获取打印份数,这个功能在平时的打印操作中,几乎每次都要设置一下,要不然打印机按打印一份处理,本程序可设置打印份数,将参数传递给打印机,一次可打印多份文档,代码超简单,有兴趣下载源码学习。
- 2022-03-24 22:43:51下载
- 积分:1
-
基于C++的打砖块游戏源码
基于C++的打砖块游戏源码,就是撞球游戏了,打乒乓球的,不过这个源代码基于C++ 实现,运行后会自动全屏,界面效果如截图所示,源代码是来自国外网站的,全部是英文注释,有兴趣的学习研究一下,游戏的操控效果还是很流畅的,值得学习。
- 2023-07-17 19:35:03下载
- 积分:1
-
VC++自定义鼠标击键(点击)的声音
VC++自定义鼠标击键声音,包括单击鼠标左键和右键的声音信息,一般情况下,Windows系统中有内置的声音,本程序是修改掉默认的单击声,改为自定义的,想熟悉修改过程的,可下载本源码参考。
运行本程序后,在窗口空白处单击鼠标左键或右键会出现与系统不一样的叮咚声音。
- 2022-03-25 07:58:00下载
- 积分:1
-
VC++ 遍历记录集的实现方法和代码
VC++ 遍历记录集的例子,需要数据库配合,核心代码如下:
//连接数据库
OnInitADOConn();
//设置查询字符串
_bstr_t bstrSQL = "select * from employees order by 员工编号 desc";
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
//遍历记录集
while(!m_pRecordset->adoEOF)
{
m_Grid.InsertItem(0,"");
m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("员工编号"));
m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("员工姓名"));
m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("所属部门"));
m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("基本工资"));
//将记录集指针移动到下一条记录
m_pRecordset->MoveNext();
}
//断开数据库连接
ExitConnect();
- 2022-09-02 14:45:03下载
- 积分: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++ 创建生成大文件
VC创建大文件的例子,这个例子是VC++源码实例,面向VC++6.0运行环境。测试时注意生成的路径,要重新 设置一下,生成文件 不是问题,但生成大文件 往往会导致一系列问题,这个源码的实例向大家介绍如何避免出现这些问题。
// 处理出错信息
//获得信息
LPVOID lpMsgBuf; //Windows will allocate
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,0,
GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //默认语言
(LPTSTR)&lpMsgBuf, 0, NULL );
//显示
::MessageBox(0, (LPCTSTR)lpMsgBuf, _T("GetLastError"), MB_OK|MB_ICONINFORMATION );
//lpMsgBuf中是你要的错误提示.
//释放内存
::LocalFree( lpMsgBuf );
return;
- 2022-02-26 16:50:15下载
- 积分: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
-
VC++ 获取主机名和IP地址及多线程运行示例
VC++6.0获取主机名和IP地址,并演示多线程的运行示例,作者:fiwen。
获取IP地址是单击窗口右上角的“获缺按钮,即可显示主机名称和该机IP地址,多线程运行演示则打开后程序立即运行,左右两侧不同的线程,执行不同的任务,各自互不影响。
多线程演示部分,分别用了两个线程,每一个线程控制一个do while循环来运行,比如其中一个线程是这样写的:
CString str;
bool ReadData= TRUE;
int i=1;
do
{
//从1到99的平方
str.Format("%-3d的平方:%-5d",i,i*i);
pList->AddString(str);
Sleep(100);
i++;
}
while (ReadData=TRUE);
return 0;
- 2022-01-20 22:35:47下载
- 积分:1
-
VC++ 源码演示雷达工程数据的可视化与处理
VC++综合实例源码,演示雷达工程数据的可视化与处理,这个源代码来自一本VC++书籍中,不知道现在是否还可以用,里面雷达测试文件,不过我没有调试成,源代码文件是比较完整的,大部分代码中都有注释,你可以了解一些关于雷达数据读娶界面标尺运用、鼠标操作控制、坐标的显示与控制、映射模式(像素)、鼠标位置标识、BMP格式重新排列数据、滚动窗口、内存控制等多个方面的操作技巧,是一个比较综合的VC++学习实例。
- 2023-03-01 01:05:04下载
- 积分:1