Schicke Buttons
Übersicht

Loewe95Betreff: Schicke Buttons |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich bin gerade dabei ein Menü für ein Spiel zu programmieren
und wollte dafür selbstgemalte Buttons benutzten, da der normale Style etwas hässlich aussieht. Meine Frage ist: Gibt es eine Möglichkeit Buttons mit .bmp-Dateien zu verknüpfen? ![]() ![]() ![]() |
||
Mhm, ja hab nichts gutes für die Signatur |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
verwende canvas | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, da B+ auf die Windows GUI aufsetzt, und man nicht Buttons oder andere GUI dinger in ein Canavas zeichnen kann, es sei denn man macht sich einen selbst.
So einen Button zu schreiben, ist außerdem eine arbeit von 1 Minute... |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
- Zuletzt bearbeitet von coolo am Sa, Feb 21, 2009 13:11, insgesamt einmal bearbeitet
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
natürlich kann man in ein canvas zeichnen, wozu sollte es denn sonst gut sein?
mfg |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
Christian+ |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also mir fallen spontan zwei Lösungen ein entweder ein Canvas und darauf Zeichen oder einen normalen Windows Button mit einem Bild versehen. | ||
strike2Death |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab gemeint, das man keinen B+ Button auf ein Canavas zeichnen kann @Djdete..., habs jetzt deutlicher gemacht. | ||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
achso, und ich habe das so verstanden, dass er einen button komplett selbst zeichnen will und nicht ein bild auf den button.
mfg dete |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
Loewe95Betreff: RE Christian+ |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Christian+ hat Folgendes geschrieben: Also mir fallen spontan zwei Lösungen ein entweder ein Canvas und darauf Zeichen oder einen normalen Windows Button mit einem Bild versehen.
Wie versieht man denn einen Windows Button mit einem Bild? |
||
Mhm, ja hab nichts gutes für die Signatur |
Christian+ |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] ;benötigte Userlibs
;.lib "user32.dll" ;api_SendMessage%(hWnd%,Msg%,wParam%,lParam%):"SendMessageA" ;api_GetWindowLong%(hWnd%,nIndex%):"GetWindowLongA" ;api_SetWindowLong%(hWnd%,nIndex%,dwNewLong%):"SetWindowLongA" ;.lib "gdi32.dll" ;api_CreateBitmap%(nWidth%,nHeight%,nPlanes%,nBitCount%,lpBits*):"CreateBitmap" ;api_DeleteObject%(hObject%):"DeleteObject" ;SetButtonImage(button,bild,wert) ; ;Parameter: ;button Identität eines Buttons ;bild Identität eines Bildes (Ist bild=0 entfernt es das Bild wieder allerdings ohne das Fenster zu aktualisieren) ;wert 0=ändert das Bild des Button 1=fügt ein Bild zum Button hinzu Function SetButtonImage(button,image,m=1) hbutton=QueryObject(button,1) f=api_GetWindowLong(hbutton,-16) If image=0 Then api_SetWindowLong hbutton,-16,f-128 Return Else If m=1 Then api_SetWindowLong hbutton,-16,f+128 EndIf End If w=ImageWidth(image) h=ImageHeight(image) ibuffer=ImageBuffer(image) LockBuffer ibuffer p=CreateBank(w*h*4) For y=0 To h-1 For x=0 To w-1 PokeInt p,4*(y*w+x)+0,ReadPixelFast(x,y,ibuffer) Next Next UnlockBuffer ibuffer i=api_CreateBitmap(w,h,1,32,p) FreeBank pixels oldimage=api_SendMessage(hbutton,247,0,i) If oldimage=0 Then api_DeleteObject(oldimage) End Function So mit der Funktion kannst ein Bild einem Button hinzufügen. mfg Christian+ |
||
strike2Death |
![]() |
frontalierBetreff: absturz |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm, schade, ich kriege bei dem befehl "oldimage=api_SendMessage(hbutton,247,0,i)" einen absturz (keinen debug). woran kann das liegen? die lib-einträge sind da, version blitzplus 1.42 / win xp, bild ist 20x20 pix rgb bitmap:
Code: [AUSKLAPPEN] ; WIN main
Global RESX=800 : Global RESY=600 win=CreateWindow("test",10,10,RESX,RESY,0,1) ; buttons Global bt_go = CreateButton ("SEARCH URL",20,60,200,200,win) UpdateWindowMenu win Global img = LoadImage ("1.bmp") SetButtonImage(bt_go,img,1) WaitKey() End ;################################################# Function SetButtonImage(button,image,m=1) hbutton=QueryObject(button,1) f=api_GetWindowLong(hbutton,-16) If image=0 Then api_SetWindowLong hbutton,-16,f-128 Return Else If m=1 Then api_SetWindowLong hbutton,-16,f+128 EndIf End If w=ImageWidth(image) h=ImageHeight(image) ibuffer=ImageBuffer(image) LockBuffer ibuffer p=CreateBank(w*h*4) For y=0 To h-1 For x=0 To w-1 PokeInt p,4*(y*w+x)+0,ReadPixelFast(x,y,ibuffer) Next Next UnlockBuffer ibuffer i=api_CreateBitmap(w,h,1,32,p) FreeBank p notify "Bis hier alles gut..." oldimage=api_SendMessage(hbutton,247,0,i) If oldimage=0 Then api_DeleteObject(oldimage) End Function |
||
Christian+ |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Lösch alles aus der Userlib von dir noch mal raus und mach es neu rein ich denke da liegt das Problem falls es nicht Hilft mal loadimage durch createimage ersetzen zum Testen ob es dann geht ich habe ja das Bild von dir nicht zum Testen doch mit einem von mir geht es. Ich nutze zwar auch BlitzPlus 1.46 zurzeit aber ich habe die Funktion schon vor einiger Zeit genutzt von daher denke ich müsste es mit 1.42 ohne Probleme gehen. | ||
strike2Death |
![]() |
frontalier |
![]() Antworten mit Zitat ![]() |
---|---|---|
perfekt - irgend ein anderer eintrag in den beiden libs muss ihn gestört haben, jetzt funzt es ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group