Visual C开发实例大全 (提高卷).doc
文本预览下载声明
( 磁盘信息
( 磁盘操作
( 系统控制与调用
( 应用程序操作
( 系统工具
( 桌面相关
( 系统信息
( 消息
( 剪贴板
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 ?检测软驱是否有软盘
本实例实现检测软驱是否有软盘。使
显示全部