如何在组合框中发送这些项目

时间:2016-02-08 18:59:42

标签: c++ winapi combobox

我在程序中创建了一个组合框。我有一个名为add()的函数,它将一些文件添加到指定的驱动器中。

我搜索了Google如何获取计算机中存在的驱动器列表,并找到了:

DWORD var1 = 100;
WCHAR storeValue[100];
DWORD drives = GetLogicalDriveStrings(var1, storeValue);
for (int i = 0;i < 100;i++)
{
    return 0;
}

我想将计算机中存在的驱动器添加到组合框中,以便我的功能可以将文件添加到指定的驱动器。我怎样才能做到这一点?对初学者来说这很安静。

我非常清楚当我们创建浏览驱动器的内容时​​会更容易,但我希望在我的组合框中执行此操作。

1 个答案:

答案 0 :(得分:3)

GetLogicalDriveStrings使用双空终止字符串数组填充缓冲区。你可以这样迭代,在&#34; next&#34;的第一个字符时停止。 string为空。

wchar_t szDrives[MAX_PATH];
if (GetLogicalDriveStrings(MAX_PATH, szDrives))
{
    wchar_t* pDrive = szDrives;
    while (*pDrive)
    {
        // do something with pDrive

        // jump to next
        pDrive += wcslen(pDrive) + 1;
    }
}

现在&#34;用pDrive做什么&#34;在你的情况下可以将字符串添加到组合框:

        SendMessage(hwndCombo, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(pDrive));