| |
|
|
- page 1 - |
|
ecki | allô Profaner,
mich serait la fois intéresser, si déjà quelqu'un versucht hat sous XProfan un Programme avec dem allgegenwärtigen Dark Mode trop erstellen. j'ai es versucht, mais seulement cela 1. la fenêtre (%hWnd) hat funktioniert. Weitere la fenêtre comment Dialogwindow, Childwindow ou bien Grid wären eh bien encore gewünscht. mais comment pourrait cela marcher?
Salut oberstleutnant |
|
|
| |
|
|
|
« cette Beitrag wurde comme Solution gekennzeichnet. » |
|
Sven Bader | allô Ecki,
Dark Mode ist une très individuelle l'affaire et aucun Invertierung de Farben. il y a sûrement Standards pour Software, quelle avec Microsoft Entwicklungswerkzeugen erstellt wurde mais dans qui Praxis faire zumindest qui Großen alle son eigenes Ding (Chrome, Firefox, Photoshop), quoi on aussi à den jeweils anderen Farben erkennt. Word bzw. Office hat es seulement avec qui neusten Version geschafft, une Darkmode umzusetzen, là donnais es cela déjà quelques Jahre dans Windows 10.
Pour une optimale Lesbarkeit wird aussi niemals reines noir pour den Hintergrund et selten reines sais pour den Text verwendet.
Bisher habe je malheureusement aussi encore aucun Solution, quelle un Dark Theme pour mich zufriedenstellend umsetzt sauf ansatzweise im XProfed. |
|
|
| |
|
|
|
|
Sven Bader | Salut,
bisher habe je quelque chose comme toujours pro Element umgsetzt, quoi la fois besser et la fois schlechter funktioniert. cela la fenêtre selbst serait mich intéresser, comment du cela gemacht la hâte! peux du den Code ici posten?
ici habe je sous anderem un Treeview dans Darkmode mise en œuvre: [...]
Sorry, dass du maintenant plus Gegenfragen comme répondre conservé la hâte.
Grüße Sven |
|
|
| |
|
|
|
ecki | allô Sven,
là la hâte Du mich wohl faux verstanden. j'ai seulement cela %hWnd per Cls RGB(0,0,0) dunkel gemacht. Alle la fenêtre, qui dans %hWnd erscheinen, voudrais je aussi inn dark hin bekommen. mais je ne sais pas, comment!
Salut ecki |
|
|
| |
|
|
|
Sven Bader | Achso... so ca va ensuite im Dialogfenster:
Es wischt sich malheureusement sur einem Dialogfenster wieder weg, weshalb on cela Neuzeichnen intercepter muss. Frank Abbing hatte là la fois une Code, qui cela per SubClass übernimmt: [...]
ici encore la fois quelque chose vereinfacht:
$H windows.ph
$H messages.ph
Déclarer dc&, ps#,d1&
Faible ps#,128
cls RGB(40,40,40)
Proc NeuZeichnen
Paramètres thedc&
Début de peinture thedc&
cls RGB(40,40,40)
EndPaint
ENDPROC
SubClassProc
Si %smessage = ~WM_PAINT
dc& = ~BeginPaint(&sWnd, ps#)
NeuZeichnen(dc&)
~EndPaint(&sWnd, ps#)
Set("WinProc", 0)
Endif
ENDPROC
d1& = Créer("Dialog",%hwnd,"Dialog",200,200,400,300)
NeuZeichnen(d1&)
SubClass d1&, 1
Tandis que 1
WaitInput
Cas %clé=2: BREAK
Endwhile
autre, ggf. bessere Possibilité:
Manche Dialogelemente laisser sich einfacher par mess une la couleur donner, letztendlich pourrait on aussi cet comme Fensterhintergrund nutzen. on muss cet Element seulement comme "Parent" définir.
ici un Beispiel, chez dem je un leeres TreeView comme Hintergrund pour cela Dialogfenster verwende, es funktioniert eigentlich très bien et qui Code ist überschaubar. TreeViews écouter sur qui Message "TVM_SETBKCOLOR".
Def Setparent(2) !"User32","SetParent"
Cls RGB(40,40,40)
declare treeview&,dialog&,button&
dialog& = Créer("Dialog",%hwnd,"Dialog",200,200,400,300)
treeview& = Créer("TreeView", dialog&, 0, -5,-5,800,800)
button& = Créer("Button", dialog&,"OK", 150, 200,100,50)
SendMessage(treeview&,$1100+29, 0,RGB(40,40,40))'~TVM_SETBKCOLOR
SetParent(button&,treeview&)
Tandis que iskey(27) = 0
WaitInput
Endwhile
|
|
|
| |
|
|
|
ecki | merci Sven,
je werde mich jetztmal avec Deinen Anregungen beschäftigen. Werde mich zurückmelden, si je ergebnisse vorweisen peux.
Herzlichen Salut
ecki |
|
|
| |
|
|
|
ecki | allô Sven,
j'ai la fois Votre Propositions getestet, cela Ergebnis hat Je ne so plaisons.
je bleibe chez qui Farbeinstellung pour cela %hWnd et lasse alle anderen la fenêtre so comment ils sont. Mir ist rien Besseres eingefallen!!
merci nochmals.
Freundliche Grüße
ecki |
|
|
| |
|
|
|
Georg Teles | comment schauts car avec SKControl.dll aus, là peux on qui Elemente beliebig einfärben
Schnellbeispiel
Grüße |
|
|
| |
|
|
|
Sven Bader | oui, qui funktioniert aussi aujourd'hui encore. Es peux je pour Element trop abweichendem Verhalten venons, aussi qui cherche pour qui neusten Version ist pas entier léger. je mon c'est qui Build 1.22.12 [...]
Dialogfenster sommes ici aussi pas dabei. je denke mais un Static ist ici qui korrekte Weg. aussi hierfür devrait pour un korrektes Verhalten setparent() nötig son. |
|
|
| |
|
|
|
ecki | Sven Bader (27.01.2023)
oui, qui funktioniert aussi aujourd'hui encore. Es peux je pour Element trop abweichendem Verhalten venons, aussi qui cherche pour qui neusten Version ist pas entier léger. je mon c'est qui Build 1.22.12 [...]
Sven Bader (27.01.2023)
Dialogfenster sommes ici aussi pas dabei. je denke mais un Static ist ici qui korrekte Weg. aussi hierfür devrait pour un korrektes Verhalten setparent() nötig son.
merci Euch Beiden,
je vois mir la fois cela Thema à. Bisher hatte es mich pas intéressé.
Salut ecki |
|
|
| |
|
|
|
ByteAttack | [...]
je exposition la fois si Je l' Voir le texte source encore habe, ensuite sende je Dir car la fois - Wieder eines meiner "unvollständigen" Projekten |
|
|
| |
|
|
|
Thomas Freier | dans qui Art une Dialoghintergrund?
'######################
'En-tête des fichiers
'######################
$H Windows.ph
$H Messages.ph
'######################
Windowstyle 543
Déclarer Ende&,Ende1&,Win02&,la couleur$,Button1&
Farbe$=RGB(0,0,0)
CLS la couleur$
'qui Brush wird de Windows benutzt um den Dialoghintergrund trop zeichnen
Var Dialogpinsel& = ~Createsolidbrush(la couleur$)
Var Button& = CREATE("BUTTON",%hwnd,"Dialog öffnen",10,10,150,25)
Titre de la fenêtre "Test..."
Whilenot Ende&
Waitinput
cas %Key=2:Ende&=1
Si Clicked(Button&)
Ende1& = 0
win02&=CREATE("Dialog",%hwnd,"Dialog",(%MaxX/2-300),(%MaxY/2-250),600,500)
'einmal qui la couleur donner
Startpaint win02&
cls la couleur$
EndPaint
Button1& = CREATE("BUTTON",win02&,"Dialog",10,10,150,25)
'Subclassing einschalten
SubClass win02&,1
Whilenot Ende1&
WAITINPUT
Si %Key = 2
Ende1& = 1
endif
Endwhile
DestroyWindow(win02&)
SetFocus(%Hwnd)
Endif
Endwhile
DeleteObject Dialogpinsel&
Fin
SubClassProc
Si SubClassMessage(win02&,~WM_CTLCOLORDLG)
Set("WinProc", 0)
'~WM_CTLCOLORDLG erwartet comme Rückgabewert une Brush pour den Hintergrund
Retour Dialogpinsel&
EndIf
ENDPROC
|
|
|
| |
|
|
|
Georg Teles | |
|
| |
|
|