如何在MFC(VC ++)中将最后一个未使用的驱动器号设置为Combobox?

时间:2010-11-16 10:40:21

标签: visual-c++ mfc

如何在MFC(VC ++)中将最后一个未使用的驱动器号设置为Combobox? 我的代码是这样的:

TCHAR g_szDrvMsg[] = _T("A:\n"); 

int main(int argc, char* argv[]) {
   ULONG uDriveMask = _getdrives(); 



 if (uDriveMask == 0)
   {
      printf( "_getdrives() failed with failure code: %d\n",
              GetLastError()); //So GetLastError retuns a sring or char*?
   }
   else
   {
      printf("The following logical drives are being used:\n");


  while (uDriveMask) {
     if (!(uDriveMask & 1))
         m_objCmbdrive.AddString(g_szDrvMsg);

     ++g_szDrvMsg[0];
     uDriveMask >>= 1;




  }

} }

m_objCmbdrive.SetCurSel(); 

我应该将什么值传递给SetCurSel以按降序设置驱动器号。

此代码为我提供了系统中使用的Drive All驱动器号。 如何把所有未使用的一个拿出来?

1 个答案:

答案 0 :(得分:1)

要选择组合框中的最后一项,您可以执行以下操作:

m_objCmbdrive.SetCurSel(m_objCmbdrive.GetCount() - 1);

要使用未使用的驱动器号按降序填充组合框,请使用InsertString()方法:

for (int i = 0; i < 26; ++i) {
    if (!(uDriveMask & 1)) {
        m_objCmbdrive.InsertString(0, g_szDrvMsg);
    }
    ++g_szDrvMsg[0];
    uDriveMask >>= 1;
}