-
VC利用OpenGL绘制NURBS曲线
VC++利用OpenGL绘制NURBS曲线,程序将进行缓冲区交换,交换缓冲区,运行后将生成一个三维曲线图,模拟NURBS曲线效果,最终效果请参见示例图所示。
- 2022-01-26 07:51:48下载
- 积分:1
-
VC++ 三种方法创建不同类型的画刷
VC++ 三种方法创建不同类型的画刷,本源码实例 演示了VC++使用三种方法创建画笔,最核心的代码:
void CCreatePenView::OnDraw(CDC* pDC)
{
CCreatePenDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
// 第一种方法创建画笔
for (int i=0; i < 7; i++)
{
// 定义时调用构造函数
CPen myPen1(PS_SOLID + i,1,RGB(255,0,0));
CPen *pOldPen1 = pDC->SelectObject(&myPen1);
pDC->MoveTo(10,20*i+10);
pDC->LineTo(750,20*i+10);
// 恢复画笔对象
pDC->SelectObject(pOldPen1);
}
// 第二种方法创建画笔
for (int j = 0;j < 7; j++)
{
CPen myPen2; // 创建CPen类的一个对象myPen2
// 调用CreatePen()函数创建画笔
myPen2.CreatePen(PS_SOLID,j,RGB(0,255,255));
CPen *pOldPen2 = pDC->SelectObject(&myPen2);
pDC->MoveTo(10,180+20*j);
pDC->LineTo(750,180+j*20);
// 恢复画笔对象
pDC->SelectObject(pOldPen2);
}
// 第三种方法创建画笔
// 创建CPen类的一个对象myPen3
CPen myPen3;
// 设置LOGPEN结构;
LOGPEN lp ;
lp.lopnColor = RGB(255,0,255);
lp.lopnStyle = PS_SOLID ;
lp.lopnWidth.x = 8 ;
// 调用CreatePen
- 2023-04-20 18:00:04下载
- 积分:1
-
VC++俄罗斯方块源码 带声音
VC++俄罗斯方块源码 带声音,操作说明:利用键盘控制方块的移动: ↑ 方块旋转 ↓ 直接落下 ←向左移动 → 向右移动。消除行数已经超过10级,游戏结束。
游戏具体玩法:选中游戏界面的"游戏"|"游戏开始"来开始游戏,每当用方块填充完一行或者多行时,则可以消除当前这一行或者多行的方块,并得到一定积分。当方块堆放的高度超过游戏所规定的最大高度,即游戏界面最上面的边界。则认定游戏结束。开始时将要出现方块没有生成,其不能赋值给当前方块数组。
判碰撞,遇到了边界或者有其他方块档住我觉得这个方法对编写游戏很不错,碰撞检测的例子。
- 2022-02-12 00:45:04下载
- 积分:1
-
VC++ ado 登录模块实现范例
VC++ ado 登录模块实现范例,因为使用ADO模块,所以要先初始化COM组件库,然后调用ADO库连接数据库,读取用户名密码是否与数据库的相符,相符则登录成功,不相符则弹出提示信息。本源码比较简单,演示了基本的基于数据库的用户名和密码判断程序,面向VC++初学者吧。
- 2023-03-17 05:10:03下载
- 积分:1
-
VC 6.0 获得驱动器序列号
VC 6.0 获得驱动器序列号,本例子中可以指定驱动器分区,也就是大家说的D盘、E盘,每个磁盘分区的序列号,这个序列号标识ID分区后由系统自动指定,我们可编写以下代码实现此功能:
//获得实际存储驱动器号的字符串长度
dwNumBytesForDriveStrings=GetLogicalDriveStrings(0,NULL)*sizeof(TCHAR);
//如果字符串不为空,则表示有正常的驱动器存在
if (dwNumBytesForDriveStrings!=0) {
//分配字符串空间
hHeap=GetProcessHeap();
lp=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,
dwNumBytesForDriveStrings);
//获得标明所有驱动器的字符串
GetLogicalDriveStrings(HeapSize(hHeap,0,lp),lp);
//将驱动器一个个放到下拉框中
while (*lp!=0) {
Driver->AddString(lp);
lp=_tcschr(lp,0)+1;
}
}
- 2022-02-06 01:57:21下载
- 积分:1
-
vc++CThreadEx范例源码
vc++CThreadEx范例源码,创建两个线程分别显示不同的图片,形成交替显示的效果,演示了线程同步和异步,并涉及到定时器的使用。在交替显示图片时,每半秒触发定时器,演示了在一个周期内创建线程、启动线程、向工作线程发出退出命令、等待工作线程、销毁工作线程、主线程停止交替显示,i交替取值0和1、解除同步、检验是否有消息到达等各个环节的实现代码。
- 2022-03-03 18:54:02下载
- 积分:1
-
VC++ WeiXinPay微信扫描二维码支付相关源码
VC++ WeiXinPay微信扫描二维码支付相关源码,这是个VC.NET源码项目,使用了qrencode生成了二维码,本微信支付项目功能包括了生成二维码、结果签名验证、下单测试、生成15位随机字符串等,有一些公共支付接口部分,需要用时候,自己修改:
CString g_strAPIKey("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");//*改* 32位的APIkey
CString g_strAppId("xxxxxxxxxxxxxxxxxx");//*改* 用户的APPID 貌似是18位的
CString g_strBody("刘隽曦的支付测试");//*改* 商品名
CString g_strMchId("xxxxxxxxxx");//*改* 商户号貌似10位
CString g_strIp("192.168.0.136");//*改* 本机IP
int g_nTotalFree = 1;//*改*商品价格 分
本源代码仅供支付,有时候微信支付接口在变化,可能会导致程序不可用。
- 2022-03-24 04:25:36下载
- 积分:1
-
VC++ 向程序中手工添加WinHelp帮助文件
VC++ 向程序中手工添加WinHelp帮助文件,也就是在程序中调用帮助。一个完善的软件系统,不可缺少帮助系统。本程序演示在VC++开发中,手动从外部添加WinHelp帮助文件,本实例 中是添加调用了Windows7系统中的两个帮助文件,点击菜单项的“帮助”,选择“帮助主题”和“绘制直线帮助”两个功能,即可演示本功能的效果。
- 2022-01-25 14:39:21下载
- 积分:1
-
VC++ 读取SQL Server数据库结构
VC++ 读取SQL Server数据库结构,读取指定数据库指定数据表的数据结构,演示中仅是读取出字段名、字段类型和字段类型取值大小,只是演示一种获取字段数据的方法:
m_grid.SetExtendedStyle(LVS_EX_FLATSB
|LVS_EX_FULLROWSELECT
|LVS_EX_HEADERDRAGDROP
|LVS_EX_ONECLICKACTIVATE
|LVS_EX_GRIDLINES);
m_grid.InsertColumn(0,"字段名",LVCFMT_LEFT,100,0);
m_grid.InsertColumn(1,"类型",LVCFMT_LEFT,100,1);
m_grid.InsertColumn(2,"大小",LVCFMT_LEFT,100,2);
- 2022-07-17 13:15:00下载
- 积分:1
-
VC++ MFC绘图打印技术范例
VC++ 6.0 基于MFC的绘图及打印技术实例,附上了完整源码,打开程序后,可单击“测试”按钮,弹出绘图设置窗口,设置好参数绘图,然后打印出数据。方法步骤:
//创建画笔C++对象
CPen* pPenBlue = new CPen;
//创建画笔
pPenBlue->CreatePen(PS_SOLID,pDoc->m_thick,pDoc->m_color);
//选中当前画笔,并保存以前的画笔
CPen* pOldPen = pDC->SelectObject(pPenBlue);
POSITION posi=pDoc->m_PointList.GetHeadPosition();
while(posi)
{
CPoint point(pDoc->m_PointList.GetNext(posi));
pDC->Ellipse(point.x,point.y,point.x+
pDoc->m_long,point.y+pDoc->m_short);
}
//恢复旧画笔
pDC->SelectObject(pOldPen);
//删除新建的画笔对象
delete pPenBlue;
//设置映射模式
pDC->SetMapMode(MM_ANISOTROPIC);
CSize winSize = CSize(1024, 768);
//设定窗口大小
pDC->SetWindowExt(winSize);
//得到实际设备每逻辑英寸的象素数量
int xLogPixPerInch,yLogPixPerInch;
xLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSX);
yLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSY);
//得到设备坐标和逻辑坐标的比例
int xExt,yExt;
xExt=winSize.cx*xLogPixPerInch/96;
yExt=winSize.cy*yLogPixPerInch/96;
//设定视口大小
pDC->SetViewportExt(xExt,yExt);
- 2022-01-25 14:09:09下载
- 积分:1