-
VC++ Thread多线程执行不同任务的例子
VC++ 创建多个 Thread多线程,用以执行不同任务的例子,运行程序后你可看到分别有红色、蓝色的小球,在沿各自不同的轨迹做运动,在代码中,我们创建了一个小球运动线程的主函数,分别用两个线程调用这个函数,但设定的参数不一样,在小球运动函数中,分别定义了小球X、Y方向的运动,确定重绘区域,重绘小球,挂起线程,控制小球速度,并取得客户区大小以及取得小球客户区相对于窗口客户区的位置等,最好还写了一个函数,终止蓝色和红色线程。
- 2022-12-06 04:40:03下载
- 积分:1
-
VC++ 在TreeView树形控件中使用BMP背景位图
VC++ 在TreeView树形控件中使用BMP背景位图,实现思路:操作采用贴图的方式,把标准的TREEVIEW窗口贴在底图上。从最终的表现形式上,可理解为,把一个Tree树形菜单控件显示于一张图片之上,图片当做背景来处理了。如演示截图所示的效果,具体的实现细节请大家参阅源代码。
- 2022-09-26 22:00:03下载
- 积分: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 创建内存映像文件对象并使用
VC++6.0 创建内存映像文件对象并使用,实现了写入内存映射文件和从内存映射文件中读取数据,比如将数据从内存映射文件读出,实现方法如下:
void CFileMapTransTxtDlg::OnRead()
{
//创建内存映像对象
HANDLE hMapping;
LPSTR lpData;
hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x100,"MYSHARE");
if(hMapping==NULL)
{
AfxMessageBox("CreateFileMapping() failed.");
return;
}
//将文件的视图映射到一个进程的地址空间上,返回LPVOID类型的内存指针
lpData=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);
if(lpData==NULL)
{
AfxMessageBox("MapViewOfFile() failed.");
return;
}
//给这段映像内存的数据赋给本地变量
m_strDest.Format("%s",lpData);
//释放映像内存
UnmapViewOfFile(lpData);
//更新数据
UpdateData(FALSE);
}
- 2022-05-17 02:25:47下载
- 积分:1
-
VC++ 6.0 使用IPicture读取显示多种格式的图像(图片)并缩放
VC++ 6.0 使用IPicture显示多种格式的图片,并可进行图片的放大和缩小等缩放操作,本实例中从全局内存中,创建IStream,从图像文件创建IPicture对象,读文件数据到内存。支持的文件类型有:bmp;*.gif;*.jpg;*.ico;*.emf;*.wmf;获取图像的长度和宽度代码如下:
long hmWidth;
long hmHeight;
m_lPciture->get_Width(&hmWidth);//图像的长度
m_lPciture->get_Height(&hmHeight);//图像的宽度
SIZE sz;
sz.cx = hmWidth;
sz.cy = hmHeight;
pDC->HIMETRICtoDP (&sz);//从OLE对象尺寸转换为像素值
sz.cx = (sz.cx * m_nScale) / 100;
sz.cy = (sz.cy * m_nScale) / 100;
RECT rc;
GetClientRect(&rc);
SetScrollSizes(MM_TEXT, sz);//设置滚动窗口的尺寸
// 显示图像
m_lPciture->Render(pDC->m_hDC,
0, //水平坐标位置
0, //垂直坐标位置
sz.cx, //水平尺寸
sz.cy, //垂直尺寸
0, //源图像的水平偏移
hmHeight,//源图像的垂直偏移
hmWidth,//复制源图像的水平长度
-hmHeight,//复制源图像的垂直长度
&rc);//显示图像的矩形区域
- 2022-07-21 07:14:46下载
- 积分:1
-
VC++ WeiXinPay微信扫描二维码支付相关源码
VC++ WeiXinPay微信扫描二维码支付相关源码,这是个VC.NET源码项目,使用了qrencode生成了二维码,本微信支付项目功能包括了生成二维码、结果签名验证、下单测试、生成15位随机字符串等,有一些公共支付接口部分,需要用时候,自己修改:
CString g_strAPIKey("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");//*改* 32位的APIkey
CString g_strAppId("xxxxxxxxxxxxxxxxxx");//*改* 用户的APPID 貌似是18位的
CString g_strBody("刘隽曦的支付测试");//*改* 商品名
CString g_strMchId("xxxxxxxxxx");//*改* 商户号貌似10位
CString g_strIp("192.168.0.136");//*改* 本机IP
int g_nTotalFree = 1;//*改*商品价格 分
本源代码仅供支付,有时候微信支付接口在变化,可能会导致程序不可用。
- 2022-03-24 04:25:36下载
- 积分:1
-
VC++ DAO 操作Access的测试例子
VC++ DAO 操作Access的测试例子,本演示是VC++使用DAO连接Access数据库的一个测试程序,学习如何使用DAO操作Access,通过添加一个数据库记录来演示添加、删除、插入数据的例子,比较简单,面向VC++初学者的一个例子。部分代码分享如下:
// 取得被选择记录的索引
nIndexInFieldList = m_listctrlInfo.GetNextSelectedItem(pos);
// 高亮被的选择记录
m_listctrlInfo.SetFocus();
// 从文件中把当前行记录删除
// 获取数据库文件
m_csDatebaseFile = GetDatabaseFile();
// 判断数据库是否已经打开
if (!m_bIsOpenDB)
{
db.Open(m_csDatebaseFile);
// 判断数据集是否已经打开
if (!m_bIsOpenDSN)
{
RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM PositionTable",NULL);
}
}
m_nTotal = m_listctrlInfo.GetItemCount();
m_nCurrentIndex = ConvertIndex(nIndexInFieldList,m_nTotal - 1);
RecSet.MoveFirst();
RecSet.Move(long(m_nCurrentIndex));
RecSet.Delete();
ClearContent();
// 删除被的选择记录
m_listctrlInfo.DeleteItem( nIndexInFieldList );
// 显示删除数据成功的信息
GetDlgItem(IDC_STATIC_INFO)->SetWindowText(_T("删除数据成功!"));
// 再次取得第一条记录的位置
POSITION pos = m_listctrlInfo.GetFirstSelectedItemPosition();
UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
- 2022-04-28 15:09:11下载
- 积分:1
-
vc++windows大作业源码-猜数字游戏
VC++ Windows课程设计源码作品:传统的猜数字游戏,编程学院大作业完整源代码。本游戏步骤:
分别在四个文本框内输入四个不同的四位数
按猜数字键猜测,得到结果,点答案键出答案,当4个文本框内的数字和位置都正确游戏胜利,自动进入下一轮答题,技巧:
玩家可以根据提示推断数字:
例 正确2个错误2个 说明有2个数字和位置都正确,2个数字正确但位置不正确
正确0个错误4个 说明有0个数字和位置都正确,4个数字正确但位置不正确
特色: 机器可以根据猜测的命中率不同显示不同的话
看完答案再答题会怎样呢? 试试就知道了~
- 2023-06-14 23:05:04下载
- 积分: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++ 6.0 实现选中项缩进的列表框
VC++ 6.0 实现选中项缩进的列表框,选中列表项后,该项缩进,文本显示为红色,自定义列表框控件,注意观察选中后的特性,重载控件的DrawItem函数。下面来看实现这一功能的代码段:
dc.Attach(lpDrawItemStruct->hDC);//获取列表框的DC
CRect rect(lpDrawItemStruct->rcItem);//获取列表框的矩形区域
COLORREF bk = dc.GetBkColor();//背景颜色
COLORREF fg = dc.GetTextColor();//系统文本颜色
if(lpDrawItemStruct->itemState & ODS_SELECTED)//该项被选中
{
bk = RGB(180,180,0 );//背景颜色
fg = RGB(255,0,0 );//红色文本
}
dc.SetTextColor(fg);
CBrush brush(bk);
dc.FillRect(&rect,&brush);
if (lpDrawItemStruct->itemState&ODS_SELECTED)
rect.left +=25;//缩进25个象素
int nBkMode = dc.SetBkMode( TRANSPARENT );
CString str;
GetText(lpDrawItemStruct->itemID,str) ;
dc.DrawText(str, &rect, DT_LEFT|DT_VCENTER);//显示文本
dc.SetTextColor(fg);
dc.SetBkMode( nBkMode );
dc.Detach() ;
- 2022-06-13 09:32:23下载
- 积分:1