-
VC++ 图书管理系统含 SQLSERVER数据库
一套完整的VC++ 图书管理系统源码,含 SQLSERVER数据库,数据库在database目录下,测试前请附加并连接好。源代码在源程序目录内,很完整,可在VC++6.0环境下顺利编译。运行效果如下图所示。
本套图书管理系统功能主要有:基本信息、图片管理、库存管理、查询管理、系统管理、系统登录、口令管理、系统人员管理等。每一个模块下都有很多子模块,界面设计也是很符合用户习惯的。
- 2023-09-07 13:35:03下载
- 积分: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
-
VC6.0 使用ODBC读写Excel表格文件
本VC++源码主要演示使用ODBC数据库访问技术:通过ODBC读写Excel表格文件,若数据库表没有被创建,则将"读取"按钮和"列表"控件置为无效状态,获取主程序所在路径,获取数据库文件。
- 2022-08-21 14:44:43下载
- 积分:1
-
VC++ MDI多文档位图的复制和粘贴功能实现
多文档(MDI):实现在多个文档中位图的复制和粘贴操作,使用说明:打开一个图像,使用“编辑”菜单中的“复制”和“粘贴”对图像进行操作,清除剪切板的内容,拷贝DIB!
CMDICopyBitmapDoc* pDoc = GetDocument();
pDoc->ReplaceHDIB(hNewDIB); // 释放旧的DIB
pDoc->InitDIBData(); // 建立新的调色板及尺寸
pDoc->SetModifiedFlag(TRUE);
SetScrollSizes(MM_TEXT, pDoc->GetDocSize());
OnRealizePal((WPARAM)m_hWnd,0); // 实现新的调色板
pDoc->UpdateAllViews(NULL);
- 2022-01-25 22:15:31下载
- 积分:1
-
VC++ 使用互斥对象(Mutex)实现线程同步
VC++ 使用互斥对象(Mutex)实现线程同步,使用临界区对象实现读、写线程的同步,通过一个写线程和读线程的实例,来演示Mutex实现的线程同步功能。用完后销毁读线程,如下示:
CSingleLock singleLock(&mutex);
singleLock.Lock();
TerminateThread(g_ReadHnd, 0);//终止读线程
singleLock.Unlock();//释放资源
m_ReadEdit.SetWindowText("终止读线程");
GetDlgItem(IDC_STARR)->EnableWindow(true);//启动按钮生效
GetDlgItem(IDC_STOPR)->EnableWindow(false);//停止按钮无效
- 2022-04-11 14:27:41下载
- 积分:1
-
VC++ 非模态对话框与应用程序之间的数据交换
VC++ 6.0演示非模态对话框与应用程序之间的数据交换的实现过程,单击鼠标右键弹出非模态对话框!实现非模态对话框的数据交换!在示例中,用户在窗口中单击鼠标右键,所弹出的颜色设置对话框,就是一个非模态对话框,设置颜色后,将值传回到主窗口。
pDialog->ShowWindow(SW_HIDE);//隐藏对话框
CRect dlgRect;
pDialog->GetWindowRect(&dlgRect);//获取对话框窗口大小
ClientToScreen(&point);//将鼠标位置转换为屏幕坐标
//移动对话框窗口
pDialog->MoveWindow(point.x, point.y,dlgRect.Width(),dlgRect.Height());
//将当前画刷的值赋予对话框变量
pDialog->m_blue=b;
pDialog->m_green=g;
pDialog->m_red=r;
pDialog->UpdateData(false);//更新控件
pDialog->ShowWindow(SW_SHOW);//显示对话框
CView::OnRButtonDown(nFlags, point);
另外还有获取非模态对话框设置的颜色值、获取视图等功能,请下载本实例源码包。
- 2022-08-07 22:51:14下载
- 积分:1
-
VC++ 在Combobox组合框的下拉列表框中实现自动选择
VC++ 在组合框的下拉列表框中实现自动选择,当在Combobox组合框中键入字符时,组合框会根据用户的输入在列表框中自动选择匹配的项,其实就是大家熟悉的搜索提示,用户输入时,Combobox下拉框会智能匹配用户的输入内容,显得很智能的下拉框。
- 2022-08-06 12:06:50下载
- 积分:1
-
VC++ 使用断言宏检测程序的运行状态
VC++ 使用断言宏检测程序的运行状态,这是一个VC++6.0 书中的代码,我没有搞懂是什么意思,检测程序运行状态的,里面还包括了数组的使用、排序方法、产生随机种子、输出排序后的数组顺序等,
- 2023-03-28 12:15:04下载
- 积分:1
-
VC++ 生成Brush笔刷程序
VC++ 生成Brush笔刷程序,使用了三种方法创建笔刷,第一种和第二种使用构造函数,第三种 创建CBrush类的一个对象myBrush3,调用CreateBrushIndirect()函数。创建了纯色、斜纹、网状方格三种形式的笔刷。
void CCreateBrushView::OnDraw(CDC* pDC)
{
CCreateBrushDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
// 第一种方法创建画刷
// 定义时调用构造函数
CBrush myBrush1(RGB(0,0,255));
CBrush* pOldBrush1 = pDC->SelectObject(&myBrush1);
pDC->Rectangle(100,150,250,400);
// 恢复画刷对象
pDC->SelectObject(pOldBrush1);
// 第二种方法创建画刷
// 定义时调用构造函数
CBrush myBrush2(HS_BDIAGONAL,RGB(255,0,0));
CBrush* pOldBrush2 = pDC->SelectObject(&myBrush2);
pDC->Rectangle(300,100,450,360);
// 恢复画刷对象
pDC->SelectObject(pOldBrush2);
// 第三种方法创建画刷
// 创建CBrush类的一个对象myBrush3
CBrush myBrush3;
// 设置LOGBRUSH结构;
LOGBRUSH lb;
lb.lbStyle = BS_HATCHED;
lb.lbColor = RGB(0,255,0);
lb.lbHatch = HS_CROSS;
// 调用CreateBrushIndirect()函数
myBrush3.CreateBrushIndirect(&lb);
CBrush* pOldBrush3 = pDC->SelectObject(&myBrush
- 2022-01-30 23:25:40下载
- 积分: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