工控编程吧
标题:
195上位机VC MFC获取硬盘的容量大小
[打印本页]
作者:
qq263946146
时间:
2016-1-29 21:36
标题:
195上位机VC MFC获取硬盘的容量大小
(, 下载次数: 2)
上传
点击文件名下载附件
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()中添加代码,实现磁盘大小获取功能
CListCtrl *pListCtrl = (CListCtrl *)GetDlgItem(IDC_LIST1);//列表控件的指针
pListCtrl->SetExtendedStyle(LVS_EX_GRIDLINES);//网格属性
pListCtrl->ModifyStyle(0,LVS_REPORT);//报表属性
pListCtrl->InsertColumn(0,"磁盘驱动器",LVCFMT_LEFT,150);
pListCtrl->InsertColumn(1,"驱动器大小",LVCFMT_LEFT,150);
m_Imglist.Create(16,16,ILC_COLOR32|ILC_MASK,0,0);
m_Imglist.Add(::AfxGetApp()->LoadIcon(IDI_ICON1));
pListCtrl->SetImageList(&m_Imglist,LVSIL_SMALL);
//<>//插入盘符
DWORD size=::GetLogicalDriveStrings(0,NULL);
if(size!=0)
{
HANDLE heap=::GetProcessHeap();
LPSTR lp=(LPSTR)HeapAlloc(heap,HEAP_ZERO_MEMORY,size*sizeof(TCHAR));
::GetLogicalDriveStrings(size*sizeof(TCHAR),lp);
while(*lp!=0)
{
pListCtrl->InsertItem(0,lp,0);
lp=_tcschr(lp,0)+1;
}
}
复制代码
//<>计算每盘符空间大小
ULARGE_INTEGER totalsize;
ULARGE_INTEGER freesize;
ULARGE_INTEGER availablesize;
int num=pListCtrl->GetItemCount();
for(int i=0;i<num;i++)
{
CString str,temp;
str=pListCtrl->GetItemText(i,0);
if(::GetDiskFreeSpaceEx(str,&totalsize,&freesize,&availablesize) )
{
temp.Format("%ld MB",totalsize.QuadPart/1048576);
pListCtrl->SetItemText(i,1,temp);
}
}
复制代码
m_Imglist为自定义添加的CImageList类型变量,IDI_ICON1为磁盘用图标
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/3f67ab693088c5ac580caa2c9d0c6f84/0/0/w_19rszdos19.swf-albumId=5389147009-tvId=5389147009-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4