-
VC++ 向程序中手工添加WinHelp帮助文件
VC++ 向程序中手工添加WinHelp帮助文件,也就是在程序中调用帮助。一个完善的软件系统,不可缺少帮助系统。本程序演示在VC++开发中,手动从外部添加WinHelp帮助文件,本实例 中是添加调用了Windows7系统中的两个帮助文件,点击菜单项的“帮助”,选择“帮助主题”和“绘制直线帮助”两个功能,即可演示本功能的效果。
- 2022-01-25 14:39:21下载
- 积分: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++ 使用CDib类实现显示与保存BMP文件
VC++ 使用CDib类实现显示与保存BMP文件,可以通过文件菜单打开BMP文件,并显示,也可实现存储BMP文件!代码中涉及到了判断DIB是否为空、获取DIB宽度和高度,程序中调用ConstructPalette来创建调色板。相关设置代码如下:
m_hDIB=m_dib.LoadFile(file);//调用ReadDIBFile()读取图像
if(m_hDIB==NULL)
{
AfxMessageBox("图像格式不正确!");// 提示出错
return FALSE;
}
SetDib();// 初始化DIB
if (m_hDIB == NULL)// 判断读取文件是否成功
{
AfxMessageBox("读取图像时出错");// 提示出错
return FALSE;// 返回FALSE
}
SetPathName(lpszPathName);// 设置文件名称
SetModifiedFlag(FALSE);// 初始化脏标记为FALSE
return TRUE;// 返回TRUE
- 2022-02-26 00:19:37下载
- 积分:1
-
vc++windows大作业源码-猜数字游戏
VC++ Windows课程设计源码作品:传统的猜数字游戏,编程学院大作业完整源代码。本游戏步骤:
分别在四个文本框内输入四个不同的四位数
按猜数字键猜测,得到结果,点答案键出答案,当4个文本框内的数字和位置都正确游戏胜利,自动进入下一轮答题,技巧:
玩家可以根据提示推断数字:
例 正确2个错误2个 说明有2个数字和位置都正确,2个数字正确但位置不正确
正确0个错误4个 说明有0个数字和位置都正确,4个数字正确但位置不正确
特色: 机器可以根据猜测的命中率不同显示不同的话
看完答案再答题会怎样呢? 试试就知道了~
- 2023-06-14 23:05:04下载
- 积分:1
-
VC++使用标签控件创建TAB标签页
VC++使用标签控件创建标签页,向大家展示VC++中基本标签控件的使用方法。如效果图所示的标签窗口,一共是创建了两个标签,单击后可切换对应的内容,在WEB开发中,这种TAB功能也有很普遍的应用。你可参考如下对TAB标签的定义:
TC_ITEM tcItem;//标签结构
tcItem.mask=TCIF_TEXT;
tcItem.pszText="标签1";
m_ctlTab.InsertItem(0,&tcItem);//添加Tab标签页
tcItem.pszText="标签2";
m_ctlTab.InsertItem(1,&tcItem);//添加Tab标签页
m_ctlTab.SetCurSel(0);//设置Tab标签1为选中状态
GetDlgItem(IDC_STATIC1)->ShowWindow(TRUE);
GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);//隐藏静态控件2
GetDlgItem(IDC_BUTTON1)->ShowWindow(TRUE);
GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_HIDE);//隐藏按钮控件2
CRect rect1,rect2;
GetClientRect(rect1);
GetDlgItem(IDC_STATIC1)->GetClientRect(rect2);
GetDlgItem(IDC_STATIC1)->MoveWindow((rect1.left+50),(rect1.top+80),rect2.Width(),rect2.Height());//移动静态控件1
GetDlgItem(IDC_BUTTON1)->GetClientRect(rect2);
GetDlgItem(IDC_BUTTON1)->MoveWindow((rect1.left+80),(rect1.top+120),rect2.Width(),rect2.Height());//移动按钮控件1
- 2022-03-29 18:20:27下载
- 积分: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
-
Windows核心编程第五版随书源码集
VC++ Windows核心编程第五版随书源码集,这些例子是很好的学习VC++编程的资料,每一个都可以编译运行,对照《VC++ Windows核心编程》这本书,理论加实践,会有更好的学习效果。
- 2022-11-21 20:20:03下载
- 积分:1
-
VC 使用LineDDA画有节点的连线实例
本源码主要演示使用VC ++中的LineDDA画有节点的连线,画出的效果可参见截图所示。
//画线
pDC->MoveTo(10,10);
pDC->LineTo(300,300);
//使用LineDDA沿线按一定间隔画“0”
//这个回调例程将在线上每个点处被调用
//实现注解:使用lpData传递用于绘图的CDC对象的引用
CDC* pDC;
pDC = (CDC*)lpData;
if( X % 20 ==0)
{
pDC->TextOut(X,Y,_T("0"));
}
- 2022-02-19 23:13:45下载
- 积分:1
-
VC++ CFileException异常处理用法范例
VC++ CFileException异常处理用法范例,
catch(CFileException* e)
{
switch(e->m_cause)
{
case CFileException::fileNotFound:
{
strMessage.Format("打开文件时发生异常(try/catch):
在指定位置没有找到文件%s
",strFile);
AfxMessageBox(strMessage);
TRACE("即将删除捕获到的异常对象CFileException::fileNotFound
");
AfxMessageBox("即将删除捕获到的异常对象CFileException::fileNotFound");
//删除异常对象
e->Delete();
TRACE("成功删除捕获到的异常对象CFileException::fileNotFound
");
AfxMessageBox("成功删除捕获到的异常对象CFileException::fileNotFound");
break;
}
case CFileException::invalidFile:
{
strMessage.Format("打开文件时发生异常(try/catch):
文件%无效
",strFile);
AfxMessageBox(strMessage);
TRACE("即将删除捕获到的异常对象CFileException::invalidFile
");
AfxMessageBox("即将删除捕获到的异常对象CFileException::invalidFile");
//删除异常对象
e->Delete();
TRACE("成功删除捕获到的异常对象CFileException::invalidFile
");
AfxMessageBox("成功删除捕获到的异常对象CFileException::invalidFile");
break;
}
default:
break;
}
}
- 2022-01-26 02:02:12下载
- 积分: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