- 博客(25)
- 资源 (62)
- 收藏
- 关注
原创 删除CTreeCtrl中某个节点的子节点
删除某个节点的子节点,下面提供两种方法:void CFileView::DelAllChildOfItem(HTREEITEM hItem){ BOOL bRet=FALSE; HTREEITEM hChildItem=NULL; while (TRUE) { bRet= m_Tree.ItemHasChildren(hItem); if (!bRet)//没有孩子...
2017-02-28 09:08:37 3625
原创 获取CTreeCtrl树控件某个节点的路径
获取类似如下树控件某个节点的路径:返回值即为此节点的路径值。CString CFileView::GetItemPath(HTREEITEM hItem){ CString ItemPath; ItemPath.Empty(); CString TemPath(_T("")); while (TRUE) { HTREEITEM hParentItem=m...
2017-02-28 09:04:56 2775
原创 获取CListCtrl选中行行号的多种方法
获取选中行的行号分为获取选中多行的行号和获取单行选中的行号。以下代码都经过测试没问题,涉及到一些函数请自行查询MSDN.获取多行选中的行号:方法一:CString str; for(int i=0; i<m_List.GetItemCount(); i++) { if( m_List.GetItemState(i...
2017-02-24 09:55:51 14164
原创 带图标工具栏的创建以及提示功能的添加
一、带图标工具栏的创建:第一步:将bmp位图或是ICON图标资源加入到资源视图中:我这里是bmp资源,添加资源时要按照你想要的顺序添加第二步,在响应的头文件中定义CToolBar对象和CImageList对象:private: CToolBar m_ToolBar; CImageList m_ImageList;第三步,在对话框的初始化函数中进行带图标工具栏的初始...
2017-02-21 14:29:58 1337
转载 手把手教你玩转SOCKET模型:完成端口(Completion Port)详解
http://www.cnblogs.com/carekee/articles/5476813.html2011这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口的用法,本文附带了有详尽注释的使用MFC编写的图形界面的示例代码。
2017-02-21 09:20:11 564
原创 WinSock 异步I/O模型[5]---完成端口+线程池技术
█ “完成端口”模型是迄今为止最复杂的一种 I/O 模型。但是,若一个应用程序同时需要管理很多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但缺点是,该模型只适用于 Windows NT 和 Windows 2000 以上版本的操作系统。█ 因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能
2017-02-21 09:16:03 819
转载 手把手教你玩转SOCKET模型:完成例程(Completion Routine)篇
目录:1.完成例程的优点2.完成例程的基本原理3.关于完成例程的函数介绍4.完成例程的实现步骤5.实际应用中应该进一步完善的地方一. 完成例程的优点1. 首先需要指明的是,这里的“完成例程”(Completion Routine)并非是大家所常听到的“完成端口”(Completion Port),而是另外一种管理重叠I/O请求的方式,而至于什
2017-02-20 10:58:41 922
转载 手把手教你玩转SOCKET模型:重叠I/O篇 -----很不错
原文地址:原文地址“身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人。我也希望大家能把自己的所学和他人一起分享,不要去鄙视别人索取时的贪婪,因为最应该被鄙视的是不肯付出时的吝啬。”----- 题记 By PiggyXP(小猪)前 言其实我首先应该道歉,因为7月份的时候曾信誓旦旦的说要写一套关于SOCKET所有模
2017-02-17 17:15:50 811
原创 WinSock 异步I/O模型[4]---重叠 I/O - Overlapped I/O
在 Winsock 中,重叠 I/O(Overlapped I/O)模型能达到更佳的系统性能,高于之前讲过的三种。因为它和这3种模型不同的是,使用重叠模型的应用程序通知缓冲区收发系统直接使用数据。也就是说,如果应用程序投递了一个10KB大小的缓冲区来接收数据,且数据已经到达套接字,则该数据将直接被拷贝到投递的缓冲区。而这3种模型中,数据到达并拷贝到单套接字接收缓冲区(Per Socket Buff
2017-02-17 15:10:58 900
原创 WinSock 异步I/O模型[3]---事件选择 - WSAEventSelect
█ 事件选择(WSAEventSelect)模型是另一个有用的异步 I/O 模型。和 WSAAsyncSelect 模型类似的是,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知,最主要的差别在于网络事件会投递至一个事件对象句柄,而非投递到一个窗口例程。█ 事件通知模型要求我们的应用程序针对使用的每一个套接字,首先创建一个事件对象。创建方法是调用 WSA
2017-02-15 16:59:53 548
原创 WinSock 异步I/O模型[2]---异步选择 - WSAAsyncSelect
█ 异步选择(WSAAsyncSelect)模型是一个有用的异步 I/O 模型。利用这个模型,应用程序可在一个套接字上,接收以 Windows 消息为基础的网络事件通知。具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数。该模型的核心即是WSAAsyncSelect函数。█ 要想使用 WSAAsyncSelect 模型,在应用程序中,首先必须用CreateWindow...
2017-02-15 16:47:24 425
原创 WinSock 异步I/O模型[1]---选择模型 - select
█ 选择(select)模型是Winsock中最常见的 I/O模型。核心便是利用 select 函数,实现对 I/O的管理!利用 select 函数来判断某Socket上是否有数据可读,或者能否向一个套接字写入数据,防止程序在Socket处于阻塞模式中时,在一次 I/O 调用(如send或recv、accept等)过程中,被迫进入“锁定”状态;同时防止在套接字处于非阻塞模式中时,产生W
2017-02-15 16:23:59 405
原创 Unicode字符集下CString/tchar*与char *转换 (解决中文乱码等)
Unicode环境下宽字符------->窄字符的转换定义:TCHAR m_szIp[MAX_IP_LEN]; 我们要将TCHANR类型数组(宽字符型)转换为char*pBuffer类型(窄字符型): 方法一: int nNum=WideCharToMultiByte(CP_ACP,0,m_szIp,-1,0,0,NULL,NULL); char* pBuffer=ne
2017-02-14 12:26:37 4056
原创 树形控件TreeCtrl的基本使用
1、插入结点:InsertItem 可以插入根节点和子节点2、获取与设置结点的文本:GetItemText、SetItemText3、删除某个结点:DeleteItem4、删除所有结点:DeleteAllItems5、收起与展开结点:Expand6、获取与设置选择结点:GetSelectedItem、SelectItem7、获取与设置虚线的颜色:GetLineColor、Set...
2017-02-09 09:07:34 7406
原创 VC++实现任务栏托盘
1)对 Shell_NotifyIcon 函数进行封装,实现对托盘的操作:BOOL CFileSearchToolDlg::TrayMyIcon(BOOL bTrayIcon, LPCTSTR lpszTipMsg, int iShowWnd){ NOTIFYICONDATA tnd = {0}; tnd.cbSize = sizeof(NOTIFYICONDATA); tnd.hWn
2017-02-07 14:41:37 1128
原创 MFC窗口最大化时控件位置的调整
如图:重载OnSize()函数进行控件调整:m_bStart在构造函数中设置为FALSE,对话框初始化函数中设置为TRUE,否则会报错。因为只有当窗口产生后才调用OnSize()函数进行控件的调整,当窗口没产生时就对窗口进行调整就会有问题。void CFileSearchToolDlg::OnSize(UINT nType, int cx, int cy){ CDialogEx
2017-02-07 10:53:11 3434
原创 C++获取操作系统的类型
int CSystemINFO::GetSysVersion(){ OSVERSIONINFO osver = {sizeof(OSVERSIONINFO)}; GetVersionEx(&osver); int t; if (osver.dwMajorVersion == 5 && osver.dwMinorVersion == 0) { t = 0;/...
2017-02-24 14:50:54 2724
原创 获取磁盘盘符类型和其总容量、可用容量
DRIVER Dir; BOOL bResult=FALSE; for(TCHAR szDisk='A';szDisk<='Z';szDisk++) { memset(&Dir,0,sizeof(DRIVER)); unsigned _int64 i64FreeBytesToCaller; unsigned _int64 i64TotalBytes; uns...
2017-02-24 14:30:22 770
转载 CListCtrl控件使用方法总结
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID )创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:...
2017-02-24 10:31:35 728
原创 TabCtrl控件的使用
本文主要介绍使用CTabCtrl的封装类CTabSheet来操纵TabCtrl控件,内容来自VC++驿站的SYC老师,如果你想添加自己想要的功能,可以进行封装的不断完善。下面先贴出封装类的 TabSheet.h文件和TabSheet.cpp文件,如下:下面是TabSheet.h文件:#pragma once// CTabSheet#define MAX_PAGES 10...
2017-02-24 08:47:03 1603
原创 CString的常用操作
①、CString 类对象的初始化:CString str;CString str1(_T("abc"));CString str2 = _T("defg");TCHAR szBuf[] = _T("kkk");CString str3(szBuf);CString str4 = szBuf;TCHAR *p = _T("1k2");//TCHAR
2017-02-14 12:30:29 681
原创 对话框中添加状态栏
1)添加字符串资源:打开资源视图下的String Table并添加字符串资源,如下图:2)在对话框类头文件中进行状态栏对象的定义:CStatusBar m_wndStatusBar;3)定义窗格数组:static UINT indicators[]={ ID_INDICATOR_THREADNUM, ID_INDICATOR_FILENUM, ID_INDICA
2017-02-07 16:14:24 684
原创 CListCtrl控件的基本使用方法
以下内容来自:vc++驿站高级列表控件ListCtrl关联的MFC中的类:CListCtrl■ 报表样式ListCtrl常用操作:1、添加列标题头:InsertColumn2、获取与设置列宽:GetColumnWidth、SetColumnWidth3、添加一行:InsertItem、SetItemText4、获取与设置单元文本:GetItemText、SetItemText5、...
2017-02-07 09:21:45 1126
转载 VC++6.0打开文件报错导致其崩溃的解决办法
在Windows7下安装Visual C++ 6.0后,遇到一个致命的问题打开文件的时候出现异常而导致VC6崩溃。如下图所示: 微软针对这个问题发布了一个补丁,原补丁是未编译的VC++6工程(FileTool),大家可以手动在VC++6.0环境下编译一下。为了方便使用,我在这
2017-02-03 16:53:26 7189 2
QLocalServer_QLocalSocket.rar
2020-02-18
opencv2.4.4库(.h/.lib/.dll)
2019-02-22
qt基于libev的多线程服务端
2018-10-31
Vs2010 + QT4.8.6 安装文件及配置详解
2018-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人