![]() |
Anzeige:
|
|
|||||||
| Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Ein Code für dauerhafte Dialoghintergründe jeglicher Art, also nicht nur einfarbig:
Code:
'
' (c) Frabbing für Paules-PC-Forum:
' http://www.paules-pc-forum.de/forum/xprofan/
'
$H windows.ph
$H messages.ph
Declare dc&, ps#
Dim ps#,128
Cls
Proc NeuZeichnen
Parameters thedc&
StartPaint thedc&
'
' --- Hier den Hintergrund des Dialogs neu zeichnen ---
UseBrush 1,RGB(128,128,255)
Rectangle 0,0 - %maxx,%maxy
UseBrush 1,RGB(255,200,40)
Ellipse 0,0 - 400,300
' -----------------------------------------------------
EndPaint
Endproc
SubClassProc
If %smessage = ~WM_PAINT
dc& = ~BeginPaint(&sWnd, ps#)
NeuZeichnen(dc&)
~EndPaint(&sWnd, ps#)
Set("WinProc", 0)
Endif
EndProc
var d1& = Create("Dialog",%hwnd,"Dialog",200,200,400,300)
var d2& = Create("Window",%hwnd,"Window",400,400,400,300)
' Dialoge hier schonmal neuzeichnen, weil uns das Subclassing
' mit XProfan WM_INITDIALOG nicht abfragen lässt
'
Neuzeichnen(~GetDC(d1&))
Neuzeichnen(~GetDC(d2&))
' Jetzt erst die Controls für die Dialoge
'
Create("Button",d1&,"Ein Button",140,140,120,40)
Create("Button",d2&,"Ein Button",140,140,120,40)
SubClass d1&, 1
SubClass d2&, 1
While 1
WaitInput
Case %key=2: BREAK
EndWhile
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. Geändert von Frabbing (13.04.2012 um 08:12 Uhr) |
|
|
|
|
|
|
#2 (Direktlink) |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Hallo Frank,
für einen einfachen Hintergrund sollte eine Reaktion auf ''WM_CTLCOLORDLG'' reichen. Code:
'######################
'Header-Dateien
'######################
$H Windows.ph
$H Messages.ph
'######################
Windowstyle 543
$H Windows.ph
Declare Ende&,Ende1&,Win02&
CLS ~GetSysColor(~Color_BTNFACE)
'Der Brush wird von Windows benutzt um den Dialoghintergrund zu zeichnen
Var Dialogpinsel& = ~Createsolidbrush($FFFF80)
Var Button& = CREATE("BUTTON",%hwnd,"Dialog öffnen",10,10,150,25)
WindowTitle "Test..."
Whilenot Ende&
Waitinput
If Clicked(Button&)
win02&=CREATE("Dialog",%hwnd,"Dialog",(%MaxX/2-300),(%MaxY/2-250),600,500)
'einmal die Farbe geben
Startpaint win02&
cls $FFFF80
Endpaint
'Subclassing einschalten
SubClass win02&,1
Whilenot Ende1&
WAITINPUT
If %Key = 2
Ende1& = 1
endif
Endwhile
DestroyWindow(win02&)
ElseIf %Key = 2
Ende& = 1
Endif
Endwhile
DeleteObject Dialogpinsel&
End
SubClassProc
If SubClassMessage(win02&,~WM_CTLCOLORDLG)
Set("WinProc", 0)
'~WM_CTLCOLORDLG erwartet als Rückgabewert einen Brush für den Hintergrund
Return Dialogpinsel&
EndIf
EndProc
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher |
|
|
|
|
|
#3 (Direktlink) |
|
Stammuser
![]() Registriert seit: 05.01.2012
Ort: Landkreis Miltenberg
Alter: 48
Beiträge: 358
|
Erst gefunden. Geht das auch ohne großen Aufwand ohne Subclass.
Wenn man eine Unit verwendet ist es halt nicht so gut mit Subclass. Momentan behelfe ich mir in ner Unit halt so, daß ich Startpaint verwende, aber nach dem Zeichnen des Hintergrunds mit CLS Farbe& sind die Objekte verschwunden. Muss diese erst alle wieder mit ShowWindow(...,1) hervorrufen???
__________________
Gruß Fränki Hobbyprogrammierer in XProfan(11.2)X2, Win7(32) Home, Win7(64) Home, XP Pro. Meine Homepage |
|
|
|
|
|
#4 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Bei meinem Code müsstest du die WM_PAINT-Abfrage eben in die Hauptschleife verlegen und ggf. WM_PAINT als Usermessage deklarieren, damit es sicher abgefangen wird. Ich fürchte aber, dass läuft dann zu schleppend. Aber ausprobieren.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#5 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Eine Unit hat keine Hauptschleife, die hat das Programm
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
|
#6 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Deswegen kann man aber einen Aufruf in der Hauptschleife plazieren.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#7 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Ohne Eingriff des Programmieres (nicht des Unit-Erstellers) sollten auch keine
Dialoge gefärbt, geskinnt oder sonstwas werden, und dann auch nur, wenn es sich um einen MediaPlayer oder ähnlich handelt. Ich persönlich hasse es, wenn Controls oder Dialoge nicht das von mir in Windows eingestellte Farbschema nutzen, sieht einfach scheisse aus
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#8 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Hasse ich auch, so ein Extrem-Skinning. Aber gegen ein dezentes Logo oben oder seitlich im Fensters spricht sicher nichts, macht Programme oft etwas freundlicher, wenn's im Rahmen bleibt.
[offtopic]Mein Monitor hat Anlaufzeiten von über ner Minute und erzeugt seltsame Doppelbilder. Da ist wohl bald ein neuer fällig...
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#9 (Direktlink) | |
|
Stammuser
![]() Registriert seit: 05.01.2012
Ort: Landkreis Miltenberg
Alter: 48
Beiträge: 358
|
Zitat:
__________________
Gruß Fränki Hobbyprogrammierer in XProfan(11.2)X2, Win7(32) Home, Win7(64) Home, XP Pro. Meine Homepage |
|
|
|
|
|
|
#10 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Dialogfenster | plutoniumkur | Allgemein | 2 | 06.03.2009 07:51 |
| Dialogfenster vergrößern | mixolydian | Windows XP | 2 | 20.03.2007 19:12 |
| CHtmlView im Dialogfenster | Don_Pazo | C/C++, Visual C++, Visual C++.NET | 4 | 16.12.2005 17:39 |
| Dialogfenster verschieben | hektor | C/C++, Visual C++, Visual C++.NET | 3 | 28.02.2005 14:52 |
| Dialogfenster | hektor | C/C++, Visual C++, Visual C++.NET | 2 | 28.02.2005 14:36 |