Standard Verzeichnis Oeffnen Button
-
Hallo,
hat jemand vielleicht mal einen code-schnippsel zum erstellen eines buttons der als bitmap das uebliche "Verzeichnis oeffnen" Bitmap hat?
(ich moechte also einen button erstellen, der nicht "Browse Directory" als Aufschrift hat, sondern ein Bitmap das einen Ordner darstellt.danke.
-
Dafür brauchst du die Bitmap oder ein Icon und dein Button muss den BS_BITMAP oder BS_ICON Style haben. Danach schickst du BM_SETIMAGE. Diese übliche Bitmap kannst möglicherweise aus shell32.dll extrahieren.
-
vielen dank, nur waerst du vielleicht so nett (wenns es nicht viel code ist)
mir ein paar zeilen zu schicken (als beispiel) oder eine URL wo ich sowas nachlesen kann??
bin mfc-intermediate.vielen dank.
gruss
-
hier ist etwas code, den ich mal genommen hatte, um bei einem spiel den button mit der gewürfelten augenzahl zu versehen:
HICON m_Wuerfel; m_Wuerfel = AfxGetApp()->LoadIcon(IDI_Wuerfel); //IDI_Wuerfel ist ein selbsterstelltes icon m_WuerfelBtn.SetIcon(m_Wuerfel); //m_WuerfelBtn ist eine CButton-Varible von der Schaltfläche, die den Würfel anzeigen sollwie Shlo schon sagte, musst du jedoch vorher BS_ICON-Style für deine Schaltfläche vergeben. (am einfachsten im ressourcen editor rechtklicks auf den button->format->symbol)
viel spass
-
wens interessiert wie man den standard geoeffneter Ordner icon fuer ein button setzt:
CButton *btn = (CButton
GetDlgItem(IDC_BTN_BROWSEWA);
btn->SetButtonStyle(BS_ICON);HICON openFolderIcon;
ExtractIconEx (
_T("SHELL32.DLL"),
4, NULL,
&openFolderIcon,
1);btn->SetIcon(openFolderIcon);
SendMessage(BM_SETIMAGE);Am besten in OnInitDialog reinschreiben

vielen dank.
gruss
-
Nochwas: meistens enthält ein Icon mehrere Größen, von LoadIcon wird defaultmäßig die Standardgröße 32x32 Pixel geladen. Falls du eine andere Größe brauchst, kannst du folgendes machen:
CImageList imgl; imgl.Create(16,16,ILC_COLOR32|ILC_MASK,1,1); //16x16 imgl.Add(::LoadIcon(0,IDI_APPLICATION)); CButton* pb = static_cast<CButton*>(GetDlgItem(IDC_BUTTON1)); pb->SetIcon(imgl.ExtractIcon(0));