QQ登录

只需一步,快速开始

195上位机VC MFC获取硬盘的容量大小

[ 复制链接 ]

195上位机VC MFC获取硬盘的容量大小

195上位机VC MFC获取硬盘的容量大小
195上位机VC MFC获取硬盘的容量大小
功能展示
前面例程已有介绍磁盘知识,我们当前例程再来实现当前系统全部有效磁盘大小的获取,程序启动时就初始化获取系统的全部磁盘及每个磁盘的大小,并显示在列表框中,效果如图;
要点提示
系统全部盘符的获取可以用函数GetLogicalDriveStrings()函数具体的使用已在前一例程介绍;
指定盘符获取可以用函数GetDiskFreeSpaceEx();
原型为:
BOOL GetDiskFreeSpaceEx( LPCTSTR lpDirectoryName,
PULARGE_INTEGERlpFreeBytesAvailableToCaller,  
PULARGE_INTEGERlpTotalNumberOfBytes,
PULARGE_INTEGERlpTotalNumberOfFreeBytes);
返回值:
Long,非零表示成功,零表示失败。可调用GetLastError()查看错误代码;
参数 类型及说明:
lpRootPathName String,不包括卷名的磁盘根路径名
lpFreeBytesAvailableToCaller LARGE_INTEGER,指定一个变量,用于容纳调用者可用的字节数量
lpTotalNumberOfBytes LARGE_INTEGER,指定一个变量,用于容纳磁盘上的总字节数
lpTotalNumberOfFreeBytes LARGE_INTEGER,指定一个变量,用于容纳磁盘上可用的字节数
实现功能
1.新建基于对话框的应用程序
2.拖拽一列表控件ID为IDC_LIST1,在主对话框中初始化函数OnInitDialog()中添加代码,实现磁盘大小获取功能
  1. CListCtrl *pListCtrl = (CListCtrl *)GetDlgItem(IDC_LIST1);//列表控件的指针
  2.         pListCtrl->SetExtendedStyle(LVS_EX_GRIDLINES);//网格属性
  3.         pListCtrl->ModifyStyle(0,LVS_REPORT);//报表属性
  4.         pListCtrl->InsertColumn(0,"磁盘驱动器",LVCFMT_LEFT,150);
  5.         pListCtrl->InsertColumn(1,"驱动器大小",LVCFMT_LEFT,150);
  6.         m_Imglist.Create(16,16,ILC_COLOR32|ILC_MASK,0,0);
  7.         m_Imglist.Add(::AfxGetApp()->LoadIcon(IDI_ICON1));
  8.     pListCtrl->SetImageList(&m_Imglist,LVSIL_SMALL);
  9.         //<>//插入盘符
  10.         DWORD size=::GetLogicalDriveStrings(0,NULL);
  11.         if(size!=0)
  12.         {
  13.                 HANDLE heap=::GetProcessHeap();
  14.                 LPSTR lp=(LPSTR)HeapAlloc(heap,HEAP_ZERO_MEMORY,size*sizeof(TCHAR));
  15.                 ::GetLogicalDriveStrings(size*sizeof(TCHAR),lp);
  16.                 while(*lp!=0)
  17.                 {
  18.                         pListCtrl->InsertItem(0,lp,0);
  19.                         lp=_tcschr(lp,0)+1;
  20.                 }
  21.         }
  22.         
复制代码
  1. //<>计算每盘符空间大小
  2.         ULARGE_INTEGER totalsize;
  3.         ULARGE_INTEGER freesize;
  4.         ULARGE_INTEGER availablesize;
  5.         int num=pListCtrl->GetItemCount();
  6.         for(int i=0;i<num;i++)
  7.         {
  8.                 CString str,temp;
  9.                 str=pListCtrl->GetItemText(i,0);
  10.                 if(::GetDiskFreeSpaceEx(str,&totalsize,&freesize,&availablesize) )
  11.                 {
  12.                         temp.Format("%ld MB",totalsize.QuadPart/1048576);
  13.                         pListCtrl->SetItemText(i,1,temp);
  14.                 }
  15.         }
复制代码
m_Imglist为自定义添加的CImageList类型变量,IDI_ICON1为磁盘用图标
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:195.上位机VC MFC获取硬盘的容量大小.rar 
文件大小:155.77 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索