文档详情

Visual C开发实例大全 (提高卷).doc

发布:2017-12-06约12.4万字共113页下载文档
文本预览下载声明
( 磁盘信息 ( 磁盘操作 ( 系统控制与调用 ( 应用程序操作 ( 系统工具 ( 桌面相关 ( 系统信息 ( 消息 ( 剪贴板 1.1 磁 盘 信 息 实例001 ?获取驱动器的卷标 使用API函数GetVolumeInformation可以获取驱动器的卷标。GetVolumeInformation函数还可以获取磁盘序列号和文件系统信息。实例运行结果如图1.1所示。 图1.1 获取驱动器的卷标 本实例主要通过GetVolumeInformation函数获取磁盘驱动器的卷标,该函数用来获得文件系统中根目录磁盘卷标信息,语法如下: BOOL GetVolumeInformation(LPCTSTR lpRootPathName,LPTSTR lpVolumeNameBuffer, DWORD nVolumeNameSize,LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength,LPDWORD lpFileSystemFlags, LPTSTR lpFileSystemNameBuffer,DWORD nFileSystemNameSize); 参数说明如表1.1所示。 表1.1 GetVolumeInformation函数的参数说明 参 数 说 明 参 数 说 明 lpRootPathName 根目录的名称 lpMaximumComponentLength 最大文件名长度 lpVolumeNameBuffer 存放卷标名称的缓存 lpFileSystemFlags 文件系统标志 nVolumeNameSize 卷标名称的大小 lpFileSystemNameBuffer 存放文件系统名称的缓存 lpVolumeSerialNumber 卷标的序列号 nFileSystemNameSize 存放文件系统名称的缓存的大小 (1)新建一个名为DeviceVolume的对话框MFC工程。 (2)在对话框上添加列表视图控件,设置ID属性为IDC_MYLIST,关联成员变量m_disklist。 (3)添加按钮控件,名为“获取”,ID为IDC_GET,双击按钮控件添加响应函数OnGet。 (4)主要代码如下: void CDeviceVolumeDlg::OnGet() { DWORD size; 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) { UINT res=::GetDriveType(lp); if(res=DRIVE_FIXED) m_disklist.InsertItem(0,lp,0); lp=_tcschr(lp,0)+1; } LPTSTR namebuf=new char[12]; DWORD namesize=12; DWORD serialnumber; DWORD maxlen; DWORD fileflag; LPTSTR sysnamebuf=new char[10]; DWORD sysnamesize=10; int num=m_disklist.GetItemCount(); for(int i=0;inum;i++) { CString str,temp; str=m_disklist.GetItemText(i,0); ::GetVolumeInformation(str,namebuf,namesize,serialnumber,maxlen,fileflag, sysnamebuf,sysnamesize); temp.Format(%s,namebuf); m_disklist.SetItemText(i,1,temp); } } 心法领悟001:在列表视图控件中选择数据。 在列表视图控件中选择数据,可以通过CListCtrl 类的GetSelectionMark获取选中项的索引,通过该索引值,使用GetItemText函数获取选定的文本数据。 实例002 ?检测软驱是否有软盘 本实例实现检测软驱是否有软盘。使
显示全部
相似文档