Как установить последнюю неиспользуемую букву диска в Combobox в MFC (VC ++)? - PullRequest
0 голосов
/ 16 ноября 2010

Как установить последнюю неиспользуемую букву диска в Combobox в MFC (VC ++)?Мой код выглядит так:

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, чтобы установить букву диска в порядке убывания.

Этот код даетme Drive Все буквы дисков, которые используются в системе.как вытащить все неиспользованное?

1 Ответ

1 голос
/ 16 ноября 2010

Чтобы выбрать последний элемент в вашем поле со списком, вы можете сделать следующее:

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...