Skocz do zawartości

Kontrolka TreeView z listą Folderów


Recommended Posts

Napisano

Witam,
W kontrolce TreeView chciałem umieścić foldery jak w explorerze. I tu pojawia się problem.

Nie wiem jak wylistować podfoldery razem z ich ikonami tzn. wszystkie dyski razem z ikonami dodać do kontrolki TreeView, a po rozwinięciu któregoś wszystkie podfoldery (także z ich ikonami) dodatkowo sprawdzając czy nie są puste.

Napisano

hej,

kiedyś też trapił mnie ten problem. możesz sobie pościągać gotowe biblioteki z neta, ale najlepiej napisać samemu, jak? z tą sprawą skieruj się do NICONA, który kiedyś mi to ładnie wytłumaczył ;)

Napisano

Jeśli można to chciałbym wiedzieć skąd sciągnąć takie kontrolki, najlepiej wraz z kodem żródłowym, abym mógł sam to rozkminić, bo szukałem i nie znalazłem tego co by mi odpowiadało.

Napisano

step 1:

wejdź na tę stronę https://www.codeproject.com/tabctrl/tabpagedrives.asp

step 2:

zobacz czy program przedstawiony na obrazku ci odpowiada

step 3:

if(odpowiada)
{
download_source() ;
}
else
{
ShellExecute(HWND_DESKTOP, "open", "https://www.codeproject.com",NULL, NULL, SW_SHOWNORMAL) ;

if(searching() == NO_FIND)
{
ShellExecute(HWND_DESKTOP, "open", "https://www.google.pl", NULL, NULL, SW_SHOWNORMAL) ;
if(searching() == NO_FIND)
{
MessageBox(HWND_DESKTOP, "Niemożliwe", "Nie wierze", MB_OK) ;
}
}
}

w razie nie powodzenia goto: step 3.

pozdrawiam

Napisano

Dzięki za odpowiedż. Ale czy jest jakiś sposób na pobranie ikony konkretnego folderu. Tak jak w XP-ku.

DODANE:
-----------------------------------------------------------------------------
Już nie trzeba. Sam znalazłem odpowiedż. Wymyśliłem że można
to zrobić przez:
Aby pobrać plik ikony folderu:

GetPrivateProfileString(".ShellClassInfo","IconFile","DEFAULT",(LPSTR)&ikona,sizeof(ikona),"C:/Folder/Desktop.ini");

i jeszcze jej miejsce w pliku (indeks ikony):

int indeksikony = GetPrivateProfileInt(".ShellClassInfo","IconIndex",0,"C:/Folder/Desktop.ini");
Napisano

Nie szkodzi, ale znalazłem łatwiejszy sposób :)

SHFILEINFO info;
SHGetFileInfo("C:\\",0, &info, sizeof(info), SHGFI_ICON | SHGFI_SHELLICONSIZE | SHGFI_SYSICONINDEX);

info.hIcon - jest to uchwyt ikony folderu, pliku czy napędu

Napisano

Przepraszam ale trochę byłem nieobecny na forum ale już odpowiadam. Widzę że na pytanie z ikonami znalazłeś odpowiedź, choć zamiast pobierania każdej ikony z osobna mogłeś poprostu zdefiniować sobie ikonke folderu i każdemu z osobna ją nadać, podobnie z dyskami. A jeśli chcesz zrobić sobie całą drzewiastą strukturę w pamięci to daj znać to podam Ci gotową funkcję jak zrobić to rekurencyjnie alokując wszystko dynamicznie.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...