Als letzten Schritt wollen wir einen zweiten Button mit einer Bitmap versehen. Ein solcher Button wird auf die selbe Art wie ein normaler Button erzeugt. Neu ist nur das Stilattribut BS_BITMAP (für Bitmaps) bzw. BS_ICON (für Symbole):
hwndBmpButton := CreateWindowEx(0, 'BUTTON', 'Button', WS_VISIBLE or WS_CHILD or {neuer Stil ->} BS_BITMAP, 45, 60, 100, 25, hWnd, IDC_BMPBUTTON, hInstance, nil);
Um die Bitmap aus den Programmressourcen zu laden, benutzen wir
hwndBMP := LoadBitmap(hInstance, MAKEINTRESOURCE(101));
Rückgabewert dieser Funktion ist ein Handle auf die Bitmap.
Ein Icon wird auf ähnliche Weise geladen, wobei man hier auch noch den Vorteil hat, transparente Grafiken nutzen zu können. Allerdings sollten Sie hier die Funktion
hwndICO := LoadImage(hInstance,MAKEINTRESOURCE(101),IMAGE_ICON, 16,16,LR_DEFAULTCOLOR);
Bitmap oder Icon werden dann mit der Nachricht "BM_SETIMAGE" auf dem Button platziert:
SendMessage(hwndBmpButton, BM_SETIMAGE, IMAGE_BITMAP, hwndBMP);
Im wParam-Parameter geben Sie an, ob das Bild eine Bitmap (IMAGE_BITMAP) oder ein Symbol (IMAGE_ICON) ist. Das Handle der Bitmap, bzw. des Icons wird im letzten Parameter angegeben.
Im Beispielprogramm kann mit Hilfe eines Compilerschalters entschieden werden, ob der Button eine Bitmap oder ein Icon verwenden soll.