-
VC++ 创建DIB操作类——CDib的源程序代码
VC++ 创建DIB操作类——CDib的源程序代码,这个类中创建了几个函数:1、用来绘制DIB对象的函数,2、按照DIB创建一个逻辑调色板的函数,3、计算DIB像素的起始位置,并返回指针的函数,4、返回DIB中图象的高度的函数,5、返回DIB中调色板的大小的函数,6、返回DIB中调色板颜色种数的函数等。
用于操作DIB的函数声明如下:
BOOL DrawDib(HDC, LPRECT,HGLOBAL, LPRECT,CPalette*);//显示位图
BOOL ConstructPalette(HGLOBAL,CPalette* );//构造逻辑调色板
LPSTR GetBits(LPSTR); //取得位图数据的入口地址
DWORD GetWidth(LPSTR);//取得位图的宽度
DWORD GetHeight(LPSTR);//取得位图的高度
WORD GetPalSize(LPSTR); //取得调色板的大小
WORD GetColorNum(LPSTR);//取得位图包含的颜色数目
WORD GetBitCount(LPSTR);//取得位图的颜色深度
HGLOBAL CopyObject(HGLOBAL);//用于复制位图对象
BOOL SaveFile(HGLOBAL , CFile&);//存储位图为文件
HGLOBAL LoadFile(CFile&);//从文件中加载位图
// 在对图象进行处理时,针对位图的字节宽度必须是4的倍数的这一要求,我们设计了函数GetRequireWidth,来处理这种比较特殊的情况:
int GetReqByteWidth(int ); //转换后的字节数GetRequireByteWidth
long GetRectWidth(LPCRECT );//取得区域的宽度
long GetRectHeight(LPCRECT);//取得区域的高度
- 2022-03-09 13:34:37下载
- 积分:1
-
VC++ 使用right outer join查询SQLServer数据库的例子
VC++ 使用right outer join查询SQLServer数据库的例子,查询结果显示在DATAGRID数据控件中,测试前请确保数据库连接已成功,且数据库非空。窗体界面效果如截图所示,注:测试时数据库连接失败,这是测试电脑的问题。
- 2023-03-02 00:25:04下载
- 积分:1
-
VC++演示如何使用insert语句批量向数据库插入数据
VC++演示如何使用insert语句批量向数据库插入数据,这个我感觉挺有用处吧,一般情况下,我们录入都是一条一条的,但信息量较大的时候,就需要批量插入数据了,我们可以先读取外部指定格式的文件,然后将数据转换为可插入的格式,然后使用insert批量向数据库中插入数据,有效提升工作效率。本示例测试前请先准备好数据库并连接上,否则会报错。
- 2022-02-26 09:24:35下载
- 积分:1
-
VC++ 音频编程:一款简洁实用的Mp3播放器
VC++ 音频编程:一款简洁实用的Mp3播放器源代码,只是实现基本的MP3文件播放、暂停、音量控制等功能,界面采用的传统窗体风格,核心代码在下载本源码后,可参考Mp3PlayerDlg.cpp文件,运行效果如图所示。
- 2023-08-24 23:00:04下载
- 积分:1
-
VC++ Thread多线程执行不同任务的例子
VC++ 创建多个 Thread多线程,用以执行不同任务的例子,运行程序后你可看到分别有红色、蓝色的小球,在沿各自不同的轨迹做运动,在代码中,我们创建了一个小球运动线程的主函数,分别用两个线程调用这个函数,但设定的参数不一样,在小球运动函数中,分别定义了小球X、Y方向的运动,确定重绘区域,重绘小球,挂起线程,控制小球速度,并取得客户区大小以及取得小球客户区相对于窗口客户区的位置等,最好还写了一个函数,终止蓝色和红色线程。
- 2022-12-06 04:40:03下载
- 积分:1
-
VC++6.0 窗口过程函数及消息发送、响应测试实例
VC++6.0 窗口过程函数及消息发送、响应测试实例,在应用程序中窗口过程函数及其消息发送、响应机制的使用,能够方便程序集中处理各类消息,使得整个程序的架构更加合理、清晰。窗口过程函数及其消息发送、响应机制的使用方法:
⑴自定义消息:
在Resource.h文件中自定义消息:#define WM_MYMSG 2000
⑵添加窗口过程函数的声明和实现体:
①在.h文件中添加窗口过程函数声明:
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
②在.cpp文件中添加窗口过程函数实现体:
⑶发送消息的方式比较:
①this->SendMessage(WM_MYMSG,0,0);
②this->PostMessage(WM_MYMSG,0,0);
③this->SendNotifyMessage(WM_MYMSG,0,0);
这三个函数都可以将指定的消息发送到某个窗口,但是这三种消息的发送方式存在如下的区别:SendMessage立即调用窗口过程函数,而且直到窗口过程函数处理完消息后才返回。PostMessage则是将指定的消息寄送到窗口消息队列后立即返回。对于SendNotifyMessage来说,如果窗口是调用线程创建的,SendNotifyMessage为该窗口调用窗口过程函数,并且等待窗口过程函数处理完消息后才返回;如果窗口是由不同的线程创建的,SendNotifyMessage将指定的消息传给窗口过程函数后立即返回。
- 2023-03-05 04:00:03下载
- 积分:1
-
VC 使用加密狗进行身份验证
VC 使用加密狗进行身份验证,一个加密范畴的例子,有兴趣的下载源码自行编译看效果,身份认证核心代码如下:
DogAddr = 10; //设置起始地址
DogBytes = 6; //设置数据的长度
DogData = m_Text.GetBuffer(6); //设置写入的数据
if (ReadDog()==0)
{
if (m_Text == m_Data)
MessageBox("身份验证成功");
else
MessageBox("身份验证失败");
}
- 2022-02-10 11:47:15下载
- 积分:1
-
VC++ 6.0 使用消息实现线程通信
线程通信:使用消息实现线程通信,一个了解多线程与消息通信的例子,以下是实现的主要代码:
LRESULT CThreadCommunicationDlg::OnDisplayResult(WPARAM wParam,LPARAM lParam)
{
int nResult = (int)wParam;
SetDlgItemInt(IDC_STATIC_RESULT,nResult,FALSE);
return 0;
}
void CThreadCommunicationDlg::OnButtonCalculate()
{
m_pCalculateThread=
(CCalculateThread*)AfxBeginThread(RUNTIME_CLASS(CCalculateThread));
Sleep(200);
m_pCalculateThread->PostThreadMessage(WM_CALCULATE,m_nLastOperand,NULL);
}
完整的源代码请下载本源码包。
- 2022-02-02 07:06:27下载
- 积分:1
-
华南理工大VC++ 实验报告:学生信息管理系统 附文档
华南理工大软件学院2016级VC++ 实验报告:学生信息管理系统 附文档,这套系统的功能分为两部分,学生部分和教务管理员部分。包括系统功能模块划分;类体系设计,即主要数据和函数功能描述;界面设计等。
1)学生功能:查看信息:个人基本信息,课表,成绩表等内容
修改信息:可修改个人基本信息
2)教务员功能: 查看信息:学生个人基本信息、课表、成绩等内容
修改信息:学生个人基本信息、课表、成绩等内容
添加学生信息:学生个人基本信息后对同班级同年级的学生进行成绩表和课表的初始化
删除学生全部信息
展示同专业同年级学生的基本信息
对同专业同年级的学生的各科成绩进行排名
3)其他功能:分文件储存不同专业不同年级学生的信息资料,方便信息的处理
添加新年级和专业的数据并初始化
各模块说明:
1)基本信息类:个人基本信息,信息的生成和获取
2)学生信息类:继承于基本信息类,增加学生特有的信息,信息的生成和获取,
- 2022-03-16 11:59:31下载
- 积分:1
-
VC++ 6.0 启动画面编程实例
VC++ 6.0 启动画面编程实例,现在这种软件启动方式比较常见了,打开软件 后,先显示一个启动画面,同时程序开始载入,显示进度条,本例子我觉得演示的挺好,源代码编译环境:vc++6.0,运行截图:请参见测试截图。
- 2022-03-18 03:56:27下载
- 积分:1