Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26915, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3326, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 312, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7643, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 20, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 23, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 58, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 146, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 71, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50944, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17.03.2011, 20:49   #1 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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
Leider lässt sich WM_INITDIALOG im Subclassing nicht abfragen, darum muß man - zumindest unter Windows 7 - das erste Neuzeichnen manuell übernehmen.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.

Geändert von Frabbing (13.04.2012 um 08:12 Uhr)
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 17.03.2011, 21:05   #2 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

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
Andreas Miethe ist offline   Mit Zitat antworten
Alt 12.04.2012, 23:04   #3 (Direktlink)
Stammuser
 
Benutzerbild von Fraenki
 
Registriert seit: 05.01.2012
Ort: Landkreis Miltenberg
Alter: 48
Beiträge: 358
Standard

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

Fraenki ist offline   Mit Zitat antworten
Alt 13.04.2012, 08:10   #4 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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.
Frabbing ist offline   Mit Zitat antworten
Alt 13.04.2012, 08:20   #5 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

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
ts-soft ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 13.04.2012, 10:47   #6 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Deswegen kann man aber einen Aufruf in der Hauptschleife plazieren.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 13.04.2012, 11:05   #7 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Deswegen kann man aber einen Aufruf in der Hauptschleife plazieren.
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
ts-soft ist offline   Mit Zitat antworten
Alt 13.04.2012, 11:56   #8 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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... [/offtopic]
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 13.04.2012, 13:59   #9 (Direktlink)
Stammuser
 
Benutzerbild von Fraenki
 
Registriert seit: 05.01.2012
Ort: Landkreis Miltenberg
Alter: 48
Beiträge: 358
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
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... [/offtopic]
Genau, dazu wollte ich es benutzen und mache das ja auch schon. Nur um Infos zu zeigen, sonst lasse ich die Dialoge so wie sie sind.
__________________
Gruß Fränki
Hobbyprogrammierer in XProfan(11.2)X2, Win7(32) Home, Win7(64) Home, XP Pro. Meine Homepage

Fraenki ist offline   Mit Zitat antworten
Alt 13.04.2012, 14:16   #10 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ä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



Alle Zeitangaben in WEZ +2. Es ist jetzt 06:09 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2