-
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
-
2种方案的VC++ 界面换肤模块
一个挺有用的VC++ 界面换肤模块,里面包括了了两种换肤方案,“方案一”文件夹中实现的是加载皮肤文件实现界面换肤,“方案二”文件夹中实现的是加载组件库实现界面换肤。
加载皮肤文件实现界面换肤:选择“界面修改”/“加载界面文件”命令,在打开的窗口中选择皮肤文件(.ski),即可更换界面皮肤.
另外还有加载组件库实现界面换肤,使用的是WndDll.dll,请下载源码具体测试吧。
加载窗体皮肤文件要注意:窗体各部分位图资源:
0,1,2: 分别为标题栏的左中右3部分
3,4,5: 分别为左,下,右边框
6,7,8,9,10,11: 为标题栏普通按钮和热点按钮
12,13: 表示左下角和右下角位图
14: 表示背景位图
- 2022-03-23 09:54:11下载
- 积分:1
-
VC6.0 对联合查询后的数据结果集进行排序
VC6.0 对联合查询后的结果进行排序,对获得的记录集进行排序,这是个同样实用的功能,特别在一些中小企业的数据库系统中,尤其实用,对数据分析很有帮助。本例子中的排序主要是两种常用形式:升序排列和降序排列。最终的排序结果绑定于Datagridview数据显示控件中显示。
- 2022-07-13 07:35:09下载
- 积分:1
-
VC++ 使用不同的画笔绘制图形
VC++ 使用不同的画笔绘制图形,演示绘制矩形、绘制多段折线、绘制椭圆、弧形和饼图,使用不同的画笔类型来绘制不同的几何图形,演示了一些VC++图形绘制的基础技巧使用方法。下面的代码演示了如何绘制出这些图形:
//以实线画笔绘制矩形
pOldPen=pDC->SelectObject(&pen[0]);
pDC->Rectangle(10, 10, 110, 110);
pDC->TextOut(10, 115, "绘制矩形");
//使用虚线画笔和函数Polyline输出多段折线
pDC->SelectObject(&pen[1]); //载入虚线画笔
CPoint pts[]={CPoint(190, 20), CPoint(200, 60), CPoint(270, 40), CPoint(210, 80),
CPoint(250, 100), CPoint(300, 30), CPoint(310, 80)};
pDC->Polyline(pts, 7); //绘制多端折线
pDC->TextOut(180, 115, "绘制多段折线");
// 使用Pie和Arc输出饼图和弧形
pDC->SelectObject(&pen[2]); //载入点线画笔
pDC->Ellipse(10, 140, 160, 240);//绘制椭圆
pDC->SelectObject(&pen[3]); //载入点划线画笔
pDC->Pie(20, 150, 150, 230, 160, 160, 10, 160);
pDC->SelectObject(&pen[4]);//载入双点划线画笔
pDC->Arc(20, 150, 150, 230, 10, 220, 160, 220);
pDC->TextOut(10, 245, "绘制椭圆、弧形和饼图");
pDC->SetTextColor(RGB(0,0,255));
pDC->TextOut(220, 200, "使用不同的画笔绘制各种图形");
//恢复设备上下文的原有画笔
pDC->SelectObject(pOldPen);
//删除所创建的画笔资源
for (int i=0; i
- 2022-02-13 06:16:01下载
- 积分:1
-
VC++ 表格式简历打印的实现
本源码演示在VC++中打印简历模板,是一个采用表格设计的简历界面,VC++将按设计的模式打印出来,就像使用Word打印一样的功能。
以下代码可作为参考:
//获取位图所有数据
m_bitdata = m_pRecord->GetFields()->GetItem((long)9)->GetChunk(m_factsize);
HBITMAP m_hmap ;
if (m_bitdata.vt==VT_ARRAY |VT_UI1)
{
//定义一个数据缓冲区
m_bitbuffer = new char[m_factsize];
//将m_buffer指向m_bitdata
SafeArrayAccessData(m_bitdata.parray,(void**)&m_buffer);
//复制位图数据到m_bitbuffer;
memcpy(m_bitbuffer,m_buffer,m_factsize);
SafeArrayUnaccessData(m_bitdata.parray);
void* m_factbitdata ; //实际的位图数据
//temp指向位图信息头
temp = m_bitbuffer+sizeof(BITMAPFILEHEADER);
BITMAPINFOHEADER * m_bitheader = (BITMAPINFOHEADER*)temp;
//获取位图信息,它包括位图信息头和调色板
BITMAPINFO* m_bitinfo = (BITMAPINFO*)temp;
//获取位图的实际数据
m_factbitdata = (void*)(m_buffer+((LPBITMAPFILEHEADER)m_bitbuffer)->bfOffBits);
CClientDC m_dc(this);
//创建位图
hbitmap = CreateDIBitmap(m_dc.m_hDC,m_bitheader,CBM_INIT,m_factbitdata,m_bitinfo,DIB_RGB_COLORS);
delete [] m_bitbuffer;
}
- 2022-07-02 18:31:16下载
- 积分:1
-
西工大C++ 毕设论文:折半查找法演示器
西工大C++ 毕设论文:折半查找法演示器,里面包括了一个毕业论文的模板,本程序演示的功能是折半查找法,测试时请输入你想要查找数据的数据表列的数据个数(1--50),还需要输入你要在其中查找数据的数据表列(%d个数据 用空格间隔 大小排序不限),然后利用折半次数计数器和循环显示每次折半查找后的表列,输出此次折半后中间数据,引用putout函数,输出该次折半后数表,最后按照从小到大顺序输出表列。
在参数定义中:count为折半次数计数器,n为数表数据个数,num存储所查数据。
更多详细代码,请下载本源码包,可作为毕业设计论文的参考资料。
- 2022-03-10 04:58:43下载
- 积分: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++ 获取IE运行实例的标题,并修改其标题
VC++ 获取IE运行实例的标题,并修改其标题,大致的实现步骤:设置列表控件的风格、创建COM变量的实例、获取当前正在运行的所有IE窗口的标题信息,刷新列表控件、释放IE实例对象、获得第i个ie实例、获得文档对象、获得文档标题、将IE标题填充到列表框、用户选择指定的IE标题项,然后设定ie标题、销毁窗口时,清除com环境、清除所有com对象。
- 2022-03-31 12:59:54下载
- 积分:1
-
华南理工大VC++ 实验报告:学生信息管理系统 附文档
华南理工大软件学院2016级VC++ 实验报告:学生信息管理系统 附文档,这套系统的功能分为两部分,学生部分和教务管理员部分。包括系统功能模块划分;类体系设计,即主要数据和函数功能描述;界面设计等。
1)学生功能:查看信息:个人基本信息,课表,成绩表等内容
修改信息:可修改个人基本信息
2)教务员功能: 查看信息:学生个人基本信息、课表、成绩等内容
修改信息:学生个人基本信息、课表、成绩等内容
添加学生信息:学生个人基本信息后对同班级同年级的学生进行成绩表和课表的初始化
删除学生全部信息
展示同专业同年级学生的基本信息
对同专业同年级的学生的各科成绩进行排名
3)其他功能:分文件储存不同专业不同年级学生的信息资料,方便信息的处理
添加新年级和专业的数据并初始化
各模块说明:
1)基本信息类:个人基本信息,信息的生成和获取
2)学生信息类:继承于基本信息类,增加学生特有的信息,信息的生成和获取,
- 2022-03-16 11:59:31下载
- 积分:1