-
VC++三种直线扫描转换算法范例演示
本源码演示了三种VC++直线扫描转换算法,这3种方式是:bresenham方法、数值微分法、中点画线法。本程序同时是一个MFC单文档程序,进行直线段扫面转换算法的算法验证。
1.使用Wizard建立单文档程序;
2.绘制20*20的网格线,格子X和Y方向间隔均为20像素,网格起始坐标在(20,20)。我们使用此网格模拟像素矩阵(),格子交叉点是像素中心。
3.输入直线段两端点,可使用以下两种方法之一:
a)对话框输入
b)鼠标在网格内以鼠标左键按下-拖动-抬起方式输入。注意:直线段两端点要自动取整到模拟的像素中心位置
4.进行直线段扫描转换,通过点击鼠标右键调用方式或者菜单调用的方式执行。计算完成后,将扫描转换结果,在模拟的像素矩阵中,使用圆形显示出来。
通过这个实验,我们可以熟悉扫描的算法,其中要注意的是判断直线的斜率,分情况处理竖直直线段、斜率绝对值大于1、斜率绝对值小于1的情况,这部分需要花费一些时间去算。总之还是对扫描算法的理解和编程基矗
- 2022-03-19 09:46:38下载
- 积分:1
-
VC 6.0 在程序中使用Calendar月历控件
VC 6.0 在程序中使用月历控件,其实和日历插件差不多,核心是调用Windows系统的Calendar,做了些功能的自定义。
实现月历控件的部分设置代码:
m_MonthCalCtrl.SetColor(MCSC_TITLETEXT,RGB(0,128,128));//设置标题条上的文本颜色
m_MonthCalCtrl.SetColor(MCSC_TITLEBK,RGB(178,178,0));//设置标题条背景颜色
m_MonthCalCtrl.SetFirstDayOfWeek(0);//设置星期一为一周的开始
//设置日期
void CCalendarDlg::OnSetToday()
{
//更新变量
UpdateData(TRUE);
//构造日期变量
CTime tm(m_nYear,m_nMonth,m_nDay,0,0,0);
m_MonthCalCtrl.SetCurSel(tm);//设置当前日期
}
- 2023-08-04 01:15:03下载
- 积分:1
-
VC++ 编程获取硬盘SMART信息
VC++ 编程获取硬盘驱动器的SMART信息,SMART信息能对硬盘的磁头单元、硬盘温度、盘片表面介质材料、马达及其驱动系统、硬盘内部电路等进行监测,及时分析并预报硬盘可能发生的问题。运行本源码测试前,请先打开Biso中的SMART信息监测开关。
本源码中的信息是英文的,使用时需要对照翻译过来,测试图如下所示。
- 2022-06-03 05:08:07下载
- 积分:1
-
VC 6.0 示波器源码
一个漂亮的VC++示波器生成类附源码实例,美观实用,如果你在编写一款采样软件,那么这个示例或许对你很有用,另附上一个示例代码,希望对大家有所帮助。该类提供了一些方法可供调用,比较方便。如果要显示采集到的数据,只要简单的调用就可以了。
- 2022-10-20 06:05:04下载
- 积分:1
-
兼容64位的VC++ 音乐播放器 带进度条
这是一个比较早的VC++播放器源码,兼容64位的VC++ 音乐播放器 带进度条和音量控制拖动条,同时还有几个常用的播放控制按钮,暂停、播放、打开文件、快进等,这个播放窗口可以随拖动大小而自动变化。运行效果如上图所示,源代码来自国外网站,注释全是英文英文的。
- 2022-01-25 16:55:52下载
- 积分:1
-
VC++ 物资进出货库存管理系统
VC++ 物资管理系统,类似进销存的系统,带有入出库管理,主要功能有物资信息查询、库存盘点、往来单位信息管理、进货管理、商品信息管理、操作员管理、员工信息管理、数据恢复、数据备份、数据库设置模块、系统设置、查询条件检索窗口,仓库信息管理、销售统计排行 、库存查询等模块。本系统在编写时使用了三方控件:RxDll.dll。
用户名:mr 默认密码:mingrisoft
数据库在根目录,两个文件:wzglxt_Data.MDF和wzglxt_Log.LDF
- 2022-04-18 10:15:36下载
- 积分:1
-
VC 区域放大图像 鼠标位置放大
VC++实现一个图片区域的放大,当鼠标悬停于图片的某一处时,放大显示该区域的图像,不过测试切现,本程序同时也可缩小图片,不过操作体验方面还需要改进,初始化时,按原来大小显示位图,鼠标移动的位置激活时,计算要放大的局部矩形的源图像位置和目标位置。如果鼠标位置不在位图上,则还原位图大小显示,如果放大倍数大于5,就继续减小放大倍数,然后进行放大显示,如果鼠标位置不在位图上,则还原位图大小显示,如果放大倍数小于150,就继续增加放大倍数,然后进行放大显示。
- 2022-08-08 13:50:08下载
- 积分:1
-
带有服务端和客户端的VC++点对点,聊天及源码
带有服务端和客户端的VC++点对点,聊天及数据传输源码,也就是大家熟悉的CS结构,一个是接收消息,一个是发送消息,在服务端和客户端都可以显示消息内容和连接状态。运行的最终效果请参见如图所示。
运行图是Server服务端的效果,客户端没有编译。
void CClientDlg::OnBottonsend()
{
UpdateData();
if (!m_strSend.IsEmpty())
m_client.Send(m_strSend,m_strSend.GetLength());
else
AfxMessageBox("发送内容不能为空!");
}
- 2022-11-23 12:00:03下载
- 积分: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++ 获取所有进程并进行管理-进程管理器
进程:进程管理器,VC++ 6.0枚举获取所有进程并进行管理-模拟一个进程管理器的写法,枚举Windows中所有正在运行的进程,本示例将演示如何获取进程路径,打开进程句柄,获取进程优先级,终止进程主函数,创建状态栏,获取当前行行号,在状态栏上显示时间,取得选择项目的索引,重新取得第一个位置,更新进程等。
- 2022-01-22 05:53:39下载
- 积分:1