QQ登录

只需一步,快速开始

73上位机VC MFC组合框加载系统硬盘盘符

[ 复制链接 ]

73上位机VC MFC组合框加载系统硬盘盘符

73上位机VC MFC组合框加载系统硬盘盘符

73上位机VC MFC组合框加载系统硬盘盘符


功能展示

任何的程序开发与硬盘打交道,进行数据文件的操作都是时有发生的,那么获取系统有效的盘符,进而完成数据文件的保存与加载就是必须的,我们当前工程实现系统有效盘符的加载并显示在组合框中供用户选择,效果如图
要点提示
我们当前例程使用函数GetLogicalDriveStrings()获取当前系统全部有效盘符;DWORD GetLogicalDriveStrings( DWORD nBufferLength, // size of buffer LPTSTR lpBuffer // pointer to buffer for drivestrings ); nBufferLength为字符缓冲区的长度, lpBuffer 为接收数据的字符缓冲区;如果函数所选成功,返回值是缓冲区中字节数,不包括终止符,如果失败,返回0;

另外获取系统的图标用函数SHGetFileInfo(); 我们例程使用这种形式获得;HIMAGELIST hImage =(HIMAGELIST)SHGetFileInfo("C:\\",FILE_ATTRIBUTE_NORMAL,&shInfo,sizeof( SHFILEINFO ),
SHGFI_SYSICONINDEX | SHGFI_ICON  ); “C:\\”表示获得C盘字符, FILE_ATTRIBUTE_NORMAL表示获得文件通过属性; shInfo用于接收获得的信息; sizeof( SHFILEINFO),表示接收缓存的大小; SHGFI_SYSICONINDEX| SHGFI_ICON 表示获得系统的大图标;





实现功能
1.新建基于对话框的应用程序

2.拖拽一个扩展组合框控件并关联变量CComboBoxEx  m_Combo;添加一按钮,并关联一消息响应函数,函数体如下
  1. void CGkbc8Dlg::OnAdd()
  2. {
  3.         if(m_DiskImageList.m_hImageList)return; //已加载过图标 返回
  4.         SHFILEINFO shInfo;
  5.         memset(&shInfo,0,sizeof(SHFILEINFO));
  6.         HIMAGELIST hImage = (HIMAGELIST)SHGetFileInfo("C:\",FILE_ATTRIBUTE_NORMAL,&shInfo, sizeof( SHFILEINFO ),
  7.                 SHGFI_SYSICONINDEX | SHGFI_ICON  );//获取系统全部大图标句柄
  8.         m_DiskImageList.Attach(hImage); //加载盘符图片

  9.         m_Combo.SetImageList(&m_DiskImageList);//设置图标
  10.         m_Combo.ResetContent();//消除组合框全部内容
  11.         char  pchDrives[MAX_PATH] = {0};
  12.         GetLogicalDriveStrings(sizeof(pchDrives), pchDrives) ;//获取系统全部有效盘符 格式:"C:\ D:\ D:\ E:\ "

  13.         char* pchDrive;
  14.         pchDrive = pchDrives;
  15.         int nItem = 0;
复制代码
  1. while(*pchDrive)
  2.         {
  3.                 COMBOBOXEXITEM     cbi;
  4.                 CString            csText;
  5.                 cbi.mask = CBEIF_IMAGE|CBEIF_INDENT|CBEIF_OVERLAY| CBEIF_SELECTEDIMAGE|CBEIF_TEXT;

  6.                 SHFILEINFO shInfo;
  7.                 int nIcon;
  8.                 SHGetFileInfo(pchDrive, 0, &shInfo, sizeof(shInfo), SHGFI_ICON|SHGFI_SMALLICON);
  9.                 nIcon = shInfo.iIcon;

  10.                 cbi.iItem = nItem;
  11.                 cbi.pszText = pchDrive;
  12.                 cbi.cchTextMax = strlen(pchDrive);
  13.                 cbi.iImage = nIcon;
  14.                 cbi.iSelectedImage = nIcon;
  15.                 cbi.iOverlay = 0;
  16.                 cbi.iIndent = (0 & 0x03);
  17.                 m_Combo.InsertItem(&cbi);
  18.                 nItem++;
  19.                 pchDrive += strlen(pchDrive) + 1;
  20.         }
  21.         m_Combo.SetCurSel(0);//设置默认显示的的组合框项
  22. }
复制代码
我们来演示下功能实现的整个过程

请点击此处下载

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

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

文件名称:73.上位机VC MFC组合框加载系统硬盘盘符.rar 
文件大小:134.64 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

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

  

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

  

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


回复

使用道具 举报

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