DLL | | | | Andreas Miethe
| Hallo zusammen,
ich hatte mal wieder Lust am Aussehen meines Xprofan-Fensters zu schrauben. Herausgekommen ist dabei eine kleine DLL, die das per mich erledigen kann. Ich lann damit Rahmen und Titelleiste verändern. siehe Bild.
Herunterladen
Ich habe die Dll zwar ausgiebig getestet, ab wenn der Eine oder Andere auch ein wenig spielen möchte, dann nur zu. Vielleicht gibt es ja noch Anregungen dazu.
Das Test-Programm ist per die letzte Freeware-Vollversion Xprofan8 geschrieben.
Bitte unbedingt die PDF-File lesen. |
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 06.01.2010 ▲ |
| |
| | Rolf Koch | Also bei mir unter Win7 klappt es einwandfrei. Schöne Sache, gerade per Gestaltungsfreaks so wie ich einer bin. Im Testprogramm sind Wechsel 3 und Wechsel 4 gleich? Dort passiert nix. |
| | | | |
| | Andreas Miethe
| Rolf Koch, Beitrag=55759, Zeitpunkt=06.01.2010
Also bei mir unter Win7 klappt es einwandfrei. Schöne Sache, gerade per Gestaltungsfreaks so wie ich einer bin. Im Testprogramm sind Wechsel 3 und Wechsel 4 gleich? Dort passiert nix.
Eigentlich sollten bei 4 die beiden Systembuttons verschwinden, die habe ich aber gar nicht angezeigt, habs einfach vergessen beim Umschreiben nach XProfan8. |
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 06.01.2010 ▲ |
| |
| | Christian Schneider | Sieht wirklich nett aus und das Testprogramm corre bei mir ohne Probleme.
Zum selber Spielen werde ich leider vor Ende Januar nicht kommen (habs aber definitiv auf ToDo). |
| | | | |
| | | Etwas umständlich in der Handhabung, aber super Sache.
Irgendwas aber... (Vista)
Also die Popups vom Menü sind zu tief und bei den Buttons fehlt oben anfangs eine Pixelreihe. |
| | | | |
| | Andreas Miethe
| iF, Beitrag=55767, Zeitpunkt=06.01.2010
Also die Popups vom Menü sind zu tief und bei den Buttons fehlt oben anfangs eine Pixelreihe.
Ja, ist beim Umschreiben nach XProfan8 passiert. Ich hatte schon total vergessen wie man eine Toolbar per Api anlegt.
Hier ein anderes Beispiel. So macht man das Toolbarmenü durchsichtig. KompilierenMarkierenSeparieren $H windows.ph
$H messages.ph
$I XFrameDll.Inc
Struct TBBUTTON = iBitmap&,idCommand&,fsState#(1),fsStyle#(1),bReserved#(2),dwData&,iString&
Struct Rect = left&,top&,right&,bottom&
Declare Ende&,Dll&
Declare TB_Buttonstrings$,TB&,TBS&
Declare Rebar&,RebarBandInfo#
Dll& = UseDll("XFrame.dll")
Windowstyle 20
windowtitle "OwnerDraw-Frame"
cls $FFFFD7
Usermessages ~wm_close
UseIcon "Eis"
Ende& = 0
#################
DLL vorbereiten
#################
SetButtonIndent(2)
SetTextIndent(4)
SetProgIcon(0)
SetOnTop(%hwnd,1)
SetButtons(0,0)
AdjustWindow(80,12,18,$FFFF)
SetOnlycaption(0)
SetAddImage(0)
Var T$ = "durchsichtiges Menü mit Rebarcontrol"
SetAddText(Addr(T$),Create("FONT","ARIAL",24,0,1,0,0),$FFFF,~DT_RIGHT)
SetButtonImages(Create("hPic",-1,GetDir$("@")+"\Pics\Allbuttons6.bmp"))
SetBackGroundImage(Create("hPic",-1,GetDir$("@")+"\Pics\BackGround3.bmp"))
SetLogoImage(Create("hPic",-1,GetDir$("@")+"\Pics\xprofande.bmp"),~DT_LEFT)
#################
#################
Dll initialisieren
#################
Init(%hwnd)
UpdateFrame(%hwnd)
#################
Menu aus Toolbar
#################
TB_ButtonStrings$ = "DateizBerarbeitenzHilfezz"
TB& = Create("Toolbar",%hwnd,-1,-1,-1,-1,1)
Var MenuFont& = Create("FONT","Arial",18,0,0,0,0)
SendMessage(TB&,~WM_SETFONT,MenuFont&,1)
SendMessage(tb&,$400+28,0,Addr(TB_ButtonStrings$))
tbs& = SendMessage(tb&,$400+57,0,0)Style holen
tbs& = tbs& | $1000 | $800 | $100 | $10 Style ändern
SendMessage(TB&,($400+56),0,tbs&)Style setzen
SendMessage(TB&,($400+32),0,Makelong(0,0))Icon-Grösse = 0,0
Buttonstil setzen, kein Icon,Stil
Declare TBB#
Dim TBB#,TBBUTTON
TBB#.iBitmap& = -1
Byte TBB#,8 = 4 , $800 | $40 | $10
Button 1 , CommandID , Text-Index
TBB#.idCommand& = -3000
TBB#.iString& = 0
SendMessage(tb&,($400+21),-1,TBB#)
Button 2 , CommandID , Text-Index
TBB#.idCommand& = -3001
TBB#.iString& = 1
SendMessage(tb&,($400+21),-1,TBB#)
Button 3 , CommandID , Text-Index
TBB#.idCommand& = -3002
TBB#.iString& = 2
SendMessage(tb&,($400+21),-1,TBB#)
Dispose TBB#
#################
########################
ReBar-Control anlegen
########################
ReBar& = Control("ReBarWindow32","",$50000040,0,0,0,0,%Hwnd,2000,%hinstance)
Set("Errorlevel",-1)
External("UxTheme.dll","SetWindowTheme",ReBar&,0)
Set("Errorlevel",0)
Dim RebarBandInfo#,80
Long RebarBandInfo#,0=80 UINT cbSize
Long RebarBandInfo#,4=$000008B3UINT fMask;
Long RebarBandInfo#,8=$00000100UINT fStyle;
Long RebarBandInfo#,32=TB& HWND hwndChild;
Var rr# = New(Rect)
Sendmessage(TB&,$041D,1,rr#)Buttonhöhe holen
Var h% = rr#.Bottom&Buttonhoehe
Dispose rr#
Long RebarBandInfo#,40=h% UINT cyMinChild;
Var BackPic& = Create("hPic",-1,GetDir$("@")+"\Pics\BackGround3.bmp")
Long RebarBandInfo#,48=BackPic&hBitmap hbmBack
sendmessage(TB&,$0438,0,$5000896D)Toolbarstyle setzen
Sendmessage (ReBar&,$0401,-1,RebarBandInfo#)Toolbar in ReBar
SetWindowPos ReBar& = 0,0- width(%hwnd),0
########################
SetToolbarAutosize(TB&)
Set("MenuBackCol",$FFFFFF)
Set("MenuBorderCol",$FFFFFF)
SubClass %HWnd, 1
Var r1# = New(Rect)
whilenot ende&
Waitinput
If %Umessage = ~wm_close
exit()
Dispose r1#
DeleteObject BackPic&
DeleteObject MenuFont&
FreeDll Dll&
Ende& = 1
Endif
If MenuItem(3000)
CreateMenu
AppendMenu 100,"&Laden",0
AppendMenu 101,"&Speichern",0
AppendMenu 102,"Speichern &als",0
Rechteck des Buttons holen
SendMessage(tb&,$400+29,0,r1#)
TrackMenu r1#.left&,Height(TB&)
Elseif Menuitem(3001)
CreateMenu
AppendMenu 100,"&Kopieren",0
AppendMenu 101,"&Ausschneiden",0
AppendMenu 102,"&Einfügen",0
SendMessage(tb&,$400+29,1,r1#)
TrackMenu r1#.left&,Height(TB&)
Elseif Menuitem(3002)
CreateMenu
AppendMenu 100,"&Hilfe",0
SendMessage(tb&,$400+29,2,r1#)
TrackMenu r1#.left&,Height(TB&)
Case MenuItem(100) : Messagebox("Hilfe gibt es hier nicht","...",0)
Endif
EndWhile
SubClassProc
If SubClassMessage(%hWnd, ~wm_size)
SetWindowPos ReBar& = 0,0- width(%hwnd),0
Set("WinProc", 0)
class=s4 href='./../../funktionsreferenzen/xprofan/endif/'>EndIf
EndProc
|
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 06.01.2010 ▲ |
| |
| | Stefan M. Caillet | Hallo Andreas, echt tolles Teil. Bei mir wird das Fenster, wenn ich es maximiere um einige Bildpunkte zu weit oben angezeigt, sodass das Programmsymbol in der Titelleiste oben abgeschnitten wird: ebenso werden die Grossbuchstaben des Fenstertitels bis zur oberkannte der Kleinbuchstaben abgeschnitten. Auch Liegt es um einige Pixel zuweit links. Habe diesen Effekt im Beispiel "TEST" unter Win7/64bit bei der Original-auflösung 1386 x 768 des TFT erlebt. Es sind keine Textvergrösserungen o.ä. eingestellt Kannst Du da noch was machen? Danke. Gruss Stefan. |
| | | Ich habe grosses Glück, weil ich Mitmenschen helfen darf. Entwicklungsumgebung: XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit PC: P4/3GHz , 2GB RAM , 1700GB HD Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD | 07.01.2010 ▲ |
| |
| | Andreas Miethe
| | | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 07.01.2010 ▲ |
| |
| | Stefan M. Caillet | Hallo Andreas, danke. absolut perfekt! Gruss Stefan |
| | | Ich habe grosses Glück, weil ich Mitmenschen helfen darf. Entwicklungsumgebung: XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit PC: P4/3GHz , 2GB RAM , 1700GB HD Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD | 07.01.2010 ▲ |
| |
|
Zur DLLTopic-Options | 10.214 Views |
ThemeninformationenDieses Thema hat 5 subscriber: |