В данном случае еще могу порекомендовать в комбобоксе изменить шрифт на пропорциональный.
Вот, теперь все, что осталось сделать – в CMainFrame::OnCreate после создания тулбара вызвать Initialize.
Взаимодейстиве с контролом, размещенным на тулбаре, происходит через соответствующий член класса и/или посредством сообщений.
Из ответов, содержащих одинаковое решение, я выбрал лучшие (с моей точки зрения). Большая просьба: не нужно присылать мне целые проекты и большие куски кода. Лучше объясните ваше решение словами.
Q. Как просканировать LAN на предмет создания поименного списка машин, чтобы затем можно было изпользовать результат в ListBox'e? Пробовал использовать для этой цели SHBrowseForFolder и связанные ф-ции с установленным флагом CIDL_NETWORK, но открывающееся окно для выбора узла и необходимость "раскрывать плюсики" в локальных группах меня не устраивает. Если можно, в API без MFC.
A1 Необходимо подключить заголовочные файлы
#include
#include
#include
и библиотеку NetAPI, в диалоге "Project Settings" на странице "Link" в поле "Object/library modules:" вписать netapi32.lib
Далее, например так:
LPSERVER_INFO_100 pServerEnum;
DWORD dwResult, dwRead, dwTotal;
dwResult = ::NetServerEnum(NULL, 100, (BYTE**)&pServerEnum, -1, &dwRead, &dwTotal, SV_TYPE_ALL, NULL, 0);
if (dwResult == NERR_Success) {
for (DWORD i=0; i
m_wndListBox.AddString(CString((LPCWSTR)pServerEnum[i].sv100_name));
}
}
Причем, используя SERVER_INFO_101 можно получить более подробную информацию (например тип и версию операционной системы), а комбинируя различные флаги в седьмом параметре NetServerEnum можно выбирать компьютеры по определенному признаку (например, только SQL-серверы или Terminal Server).
Недостаток такого способа в том, что он получает список хостов от мастер-браузера. Таким образом в этом списке присутствуют только хосты, в настоящий момент присутствующие в сети. А поскольку мастер-браузер обновляет эту информацию с периодичностью около 15 минут, список может быть не актуален на данный момент. Кроме того в нем отсутствуют "скрытые" хосты (например командой net config server /hidden:yes ).
А вот мой вопрос… Многие утилиты Windows NT Server (regedt32, Windows NT Diagnostics, Event Viewer, Perfomance Monitor, Shutdown Manager) имеют диалог "Select Computer". Наверняка он в системе "стандартный". Что-то типа SHBrowseForFolder. Может кто знает, где его найти, как вызвать?