-
VC++基于VC++写的登录程序
VC++基于VC++写的登录程序,结合数据库实现的,是一个简单数据库程序,测试前请做以下工作:
1.配置ODBC数据源
2.新建CAdminDatasets类(方便登录对话框的调用),新建过程当中以CRecordset为基类,数据源选中对应数据库,然后选中对应用户登录表
3.新建登录对话框,以CDialog为基类。然后按程序代码执行登录检查
- 2022-08-22 14:43:26下载
- 积分: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++ 创建WinExample和MFCExample窗口程序演示
VC++ WinExample和MFCExample程序演示,是创建此两类程序的演示,一种是使用WINAPI的方式 创建程序窗口,另一种是采用MFC方式创建窗口,下面列举一上结使用WINAPI方式创建窗口的具体代码,完整代码请下载本源码。
// 创建窗口
hWnd = CreateWindow("HelloMsg",// 窗口类名
"我的窗口", // 窗口标题
WS_OVERLAPPEDWINDOW,// 窗口样式
CW_USEDEFAULT,// 窗口最初的x位置
CW_USEDEFAULT,// 窗口最初的y位置
CW_USEDEFAULT,// 窗口的宽度
CW_USEDEFAULT,// 窗口的高度
NULL,// 父窗口句柄
NULL,// 窗口菜单句柄
hInstance,// 应用程序实例句柄
NULL);// 创建窗口的参数窗口消息处理函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_LBUTTONDOWN:// 鼠标左键按下消息
MessageBox(NULL, "欢迎进入Visual C++!", "问候", 0);
break;
case WM_DESTROY:// 窗口销毁消息
PostQuitMessage(0);
break;
default:
// 默认消息处理函数
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return 0;
}
- 2022-09-16 09:05:03下载
- 积分:1
-
VC++ 向程序中手工添加WinHelp帮助文件
VC++ 向程序中手工添加WinHelp帮助文件,也就是在程序中调用帮助。一个完善的软件系统,不可缺少帮助系统。本程序演示在VC++开发中,手动从外部添加WinHelp帮助文件,本实例 中是添加调用了Windows7系统中的两个帮助文件,点击菜单项的“帮助”,选择“帮助主题”和“绘制直线帮助”两个功能,即可演示本功能的效果。
- 2022-01-25 14:39:21下载
- 积分:1
-
VC++俄罗斯方块源码 带声音
VC++俄罗斯方块源码 带声音,操作说明:利用键盘控制方块的移动: ↑ 方块旋转 ↓ 直接落下 ←向左移动 → 向右移动。消除行数已经超过10级,游戏结束。
游戏具体玩法:选中游戏界面的"游戏"|"游戏开始"来开始游戏,每当用方块填充完一行或者多行时,则可以消除当前这一行或者多行的方块,并得到一定积分。当方块堆放的高度超过游戏所规定的最大高度,即游戏界面最上面的边界。则认定游戏结束。开始时将要出现方块没有生成,其不能赋值给当前方块数组。
判碰撞,遇到了边界或者有其他方块档住我觉得这个方法对编写游戏很不错,碰撞检测的例子。
- 2022-02-12 00:45:04下载
- 积分:1
-
VC++ 使用自定义消息进行线程间的通信
VC++ 使用自定义消息进行线程间的通信,在本例子中,当计数到17的整数倍时,工作线程通过自定义消息与主线程通信。最后会弹出消息框:当前计数器的计数为17的整数倍。计数器有几个选项:高速计数、低速计数,相关参数设置如下:
SpeedControl=1;
GetDlgItem(IDC_RADIO1)->EnableWindow(true);//单选按钮生效
GetDlgItem(IDC_RADIO2)->EnableWindow(true);
GetDlgItem(IDC_RADIO3)->EnableWindow(true);
GetDlgItem(IDC_STAR)->EnableWindow(false);//开始按钮无效
numinfo.pedit=&m_Num;
numinfo.hwnd=GetSafeHwnd();//获取主线程窗口指针
CWinThread* pThread=AfxBeginThread(ThreadFunc,&numinfo);//创建新的线程并开始执行
- 2023-03-13 15:00:04下载
- 积分:1
-
VC++ 数据库万能打印模块
VC++ 数据库万能打印模块,书中的例子,最终运行效果请参见截图。操作方法:首先在“选择数据库类型”下拉列表中选择数据库类型,这里有两种,Access和SQL Server。选择完数据库后,单击“连接数据库”进入相应的操作界面,选择数据表及字段,单击“确定”按钮,即可进入数据查询页面,在该页面中查以查询数据、打印数据。单击“查询”按钮,打开“查询”模块,单击“打印设置”按钮,打开“设置”模块,这里可以设置纸张,页边距,打印方向,字体,颜色,表格高度,线条宽度等等。单击“打颖按钮,进入打印预览页面,在该页面中单击“打颖按钮,即可打印数据。
详细的代码请下载源码包。
- 2022-01-29 04:39:18下载
- 积分:1
-
vc++ 动画启动、关闭窗口并添加位图背景
vc++ 动画启动、关闭窗口并添加位图背景,加载位图,创建位图画刷,设置背景颜色模式为透明色,使用位图背景,且实现动画显示和关闭窗口,在窗口关闭时,同样以动画的方式结束。
void CMainFrame::OnClose()
{
AnimateWindow(GetSafeHwnd(),800,AW_CENTER|AW_HIDE);//在窗口关闭时,同样以动画的方式结束
CFrameWnd::OnClose();
}
- 2022-01-25 22:51:13下载
- 积分:1
-
VC++ 限定框架窗口的大小和位置
VC++ 限定框架窗口的大小和位置,无法移动且固定大小的SDI,用VC++编写实现这种固定窗口大小,且无法用鼠标拖动的窗口。窗口是不能改变大小的,窗口标题也不能被拖动,运行程序后,窗口的位置就已经固定,并不能移动和调整大小的操作。相关的代码:
CMenu* pTopMenu = GetSystemMenu(FALSE); //获取系统菜单
pTopMenu -> RemoveMenu(4,MF_BYPOSITION); //去除最大、最小化功能
pTopMenu -> RemoveMenu(2,MF_BYPOSITION); //去除改变尺寸功能
pTopMenu -> RemoveMenu(1,MF_BYPOSITION); //去除移动功能
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
//设置框架窗口的初始大小和位置
cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 4;
cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
cs.y = cs.cy / 4;
cs.x = cs.cx / 2;
return TRUE;
- 2022-06-14 00:02:23下载
- 积分: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