-
VC++ ChatRoom聊天室(客户端+服务端)
VC++ 聊天室(客户端+服务端),CS架构的ChatRoom聊天源码,服务端用来创建公共的聊天服务,比如创建用户列表、显示聊天消息、监控用户数量和在线人数;客户端是提供给用户使用的真正聊天程序,可完成大部分的聊天操作,比如发送聊天内容、选择私聊对象、查看聊天黑名单、设置加密传输消息、设置加密密钥、密文、选择发送表情、自定义昵称等功能。聊天窗口通过调主对话框的成员函数GetMessage来显示聊天信息,当用户数增加时,播放欢迎音乐,当用户数减少时播放离开音乐。
源代码部分,请参照源码目录中命名的文件夹,查看对应功能。
- 2022-03-02 10:15:20下载
- 积分:1
-
VC 按1:1 按宽度和高度 平铺拉伸放大缩小图片
本程序为VC++缩放图片的小示例,可按宽度、高度、充满、居中显示等多种方式显示图片,具体来说可完成以下放大或缩小图片的功能:
//1:1比例,不放大也不缩小:
void CZoomImgDemoDlg::On11()
{
m_wndImage.SetStrechType(STRECH_1_1);
}
//按宽度放大:
void CZoomImgDemoDlg::OnFullX()
{
m_wndImage.SetStrechType(STRECH_FULL_X);
}
//按高度
void CZoomImgDemoDlg::OnFullY()
{
m_wndImage.SetStrechType(STRECH_FULL_Y);
}
//充满窗口
void CZoomImgDemoDlg::OnFull()
{
m_wndImage.SetStrechType(STRECH_FULL);
}
//居中显示,大小为窗口的一半
void CZoomImgDemoDlg::OnCenter()
{
m_wndImage.SetStrechType(STRECH_CENTER);
}
- 2022-01-28 02:37:20下载
- 积分:1
-
VC++ MFC程序的生命期设置方法
MFC程序的生命期,调用视的成员函数以便显示空闲处理进行的次数,程序最终显示Onldle已经被调用的次数:
//定义字符串对象
CString strCount,strTem;
strTem="OnIdle已经被调用的次数为:";
//获取设备上下文,以便在上面写文字
pDc=GetWindowDC();
//格式化字符串
strCount.Format("%s%d",strTem,lCount);
//输出文本
pDc->TextOut(100,100,strCount);
//刷新视图的客户区
Invalidate();
//设防资源
ReleaseDC(pDc);
//延迟,以便能看清显示的文字(毫秒单位)
Sleep(100);
- 2022-10-05 03:25:03下载
- 积分:1
-
VC++ 实现屏幕取词功能的鼠标钩子
VC++实现类似早期金山词霸屏幕取词功能的鼠标钩子HOOK,鼠标HOOK,钩子的实现例子附上源码,里面包括了两个源码:
Mousehook为类似金山词霸屏幕取词功能的鼠标钩子
TestMouseHook文件夹内为鼠标钩子生成DLL的源码例子
在调用这个钩子时,要把MouseHook文件夹内生成的DLL拷贝至TestMousehook的BIN目录下。
调用钩子时,要做相关设置:
#pragma data_seg("mydata")
HWND glhPrevTarWnd = NULL; //上次鼠标所指的窗口句柄
HWND glhDisplayWnd = NULL; //显示目标窗口标题编辑框的句柄
HHOOK glhHook = NULL; //安装的鼠标勾子句柄
HINSTANCE glhInstance = NULL; //DLL实例句柄
#pragma data_seg()
还有安装钩子并设定接收显示窗口句柄、设置显示目标窗口标题编辑框的句柄、得到光标(point)所在点的窗口句柄、得到整个窗口在屏幕上的矩形框位置等。
- 2023-05-25 03:10:04下载
- 积分:1
-
VC++ 使用WinInet通过HTTP协议读取网上文件
VC++ 6.0 使用WinInet通过HTTP协议读取网上文件
在一个按钮事件中定义了网络连接Session:
CInternetSession httpsession;//定义网络连接Session
CString Line;
CInternetFile* webfile=NULL;//定义一个文件对象指针
UpdateData();
if(m_Url.Left(7)!="http://")//如果地址不含HTTP类型标志则添加本地文件类型标志
读出文件前一部分,如果文件多于80行,三示例中只显示前80行.然后更新显示文件:
UpdateData(FALSE);//更新显示文件
delete webfile;//删除文件
GetDlgItem (IDC_SHOW)->EnableWindow (FALSE);//禁用显示按钮
httpsession.Close();//关闭连接
- 2023-09-07 18:35:03下载
- 积分:1
-
VC Calendar 自定义的日历选择插件
VC++ 6.0 Calendar 自定义的日历选择插件,这个功能相信大家都比较熟悉了,是用来选择日期和时间的,避免用户输入出错,选择后可把数据填充在指定的文本框内,或提交至下一个数据处理环节。这个例子是前两年的,风格和Windows XP相似,与Windows7和10版本有所区别,核心代码为:
//设置选择日期
void CCalendarDlg::OnSetCursel()
{
//更新变量
UpdateData(TRUE);
//构造日期变量
CTime tm(m_nYear,m_nMonth,m_nDay,0,0,0);
m_MonthCalCtrl.SetCurSel(tm);
}
//设置日期
void CCalendarDlg::OnSetToday()
{
//更新变量
UpdateData(TRUE);
//构造日期变量
CTime tm(m_nYear,m_nMonth,m_nDay,0,0,0);
m_MonthCalCtrl.SetToday(&tm);
m_MonthCalCtrl.SetCurSel(tm);
}
- 2022-01-25 19:36:09下载
- 积分:1
-
VC++ SQL数据库提取器(备份、还原、分离数据库)
VC++6.0编写的 SQL数据库提取器,本程序主要实现了备份和还原数据库、附加和分离数据库、提取数据表、导出数据、配置ODBC数据源等功能。
备份和还原数据库:在“选择数据库”下拉列表中选择要备份的数据库,单击工具栏中的备份数据库按钮,打开保存备份文件窗口,保存备份文件即可。还原数据库时,在“选择数据库”下拉列表中选择要还原的数据库,然后单击工具栏中的还原数据库按钮,选择备份文件,即可还原该数据库。
附加和分离数据库:单击附加数据库按钮,选择需要附加的数据库即可。
分离数据库时,在“选择数据库”下拉列表中选择要分离的数据库,然后单击分离数据库按钮即可。
提取数据表:选择要提取的数据库及相应的数据表,然后单击提取表结构按钮,打开“SQL提缺窗口,有两种提取方式,可以提取到Word或Excel中。
导出数据:选择要导出的数据表,单击“导出数据”按钮,打开“数据导出”窗口,有三种提取方式:导出到Word、导出到Excel、导出到文本,选择任意一种,单击“导出”按钮即可。
- 2022-05-23 15:52:48下载
- 积分:1
-
vc++ 6.0 AddNew添加数据库记录实例
VC++ 数据库基础编程例子,使用记录集对象的AddNew方法添加记录。
//连接数据库
OnInitADOConn();
//设置查询字符串
_bstr_t bstrSQL = "select * from employees order by 员工编号 desc";
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
while(!m_pRecordset->adoEOF)
{
m_Grid.InsertItem(0,"");
m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("员工编号"));
m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("员工姓名"));
m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("所属部门"));
m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("基本工资"));
//将记录集指针移动到下一条记录
m_pRecordset->MoveNext();
}
//断开数据库连接
ExitConnect();
- 2022-03-10 00:07:57下载
- 积分:1
-
VC++ 6.0 实现选中项缩进的列表框
VC++ 6.0 实现选中项缩进的列表框,选中列表项后,该项缩进,文本显示为红色,自定义列表框控件,注意观察选中后的特性,重载控件的DrawItem函数。下面来看实现这一功能的代码段:
dc.Attach(lpDrawItemStruct->hDC);//获取列表框的DC
CRect rect(lpDrawItemStruct->rcItem);//获取列表框的矩形区域
COLORREF bk = dc.GetBkColor();//背景颜色
COLORREF fg = dc.GetTextColor();//系统文本颜色
if(lpDrawItemStruct->itemState & ODS_SELECTED)//该项被选中
{
bk = RGB(180,180,0 );//背景颜色
fg = RGB(255,0,0 );//红色文本
}
dc.SetTextColor(fg);
CBrush brush(bk);
dc.FillRect(&rect,&brush);
if (lpDrawItemStruct->itemState&ODS_SELECTED)
rect.left +=25;//缩进25个象素
int nBkMode = dc.SetBkMode( TRANSPARENT );
CString str;
GetText(lpDrawItemStruct->itemID,str) ;
dc.DrawText(str, &rect, DT_LEFT|DT_VCENTER);//显示文本
dc.SetTextColor(fg);
dc.SetBkMode( nBkMode );
dc.Detach() ;
- 2022-06-13 09:32:23下载
- 积分:1
-
用VS2008+ATL开发可以显示Gif的ActiveX控件源码
VS2008%2BATL开发Gif的ActiveX控件%28毛坯%29
创建一个空的解决方案,名称GifSolution。将来包含控件项目和测试项目。新建项目,弹出的对话框中选ATL项目,名称为GifAnimate确定。弹出的对话框中选择DLL服务器(可选允许合并代理存根,这样不会产生代理dll),完成后编译,这样工程框架就完成了。
组件分有窗口的和无窗口的,这里应该用有窗口的,所以添加组件的时候,外观不要基于none,最好基于CStatic。因为gif是动态的,应该用另一个线程绘制,这样不影响主线程响应消息,绘图更加流畅。
为GifAnimate项目添加类-选择ATL控件,点击添加,弹出对话框。
1.本文只是举例说明开发过程,抛砖而已。
2.样例只是框架,不能直接使用,所有代码没有经过测试
3.样例接收器GifSink和属性页卡片没有完成,懒了,呵呵
4.样例背景等很多属性没有实现
5.使用了GDI+,但GDI+的Image类的SetActiveFrame函数有问题,网上貌似没有解决办法。Debug版本不影响使用,Release版本没有测试。如果有兴趣,可以使用IPicture接口,网上很多。
- 2022-03-31 20:14:24下载
- 积分:1