如何在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驱动器号。 如何把所有未使用的一个拿出来?
答案 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;
}