Deutsch
SKControl.DLL

Fragen zu SKCtrl_CreateColorEdit

 

Georg
Hovenbitzer
Hallo zusammen,

nachfolgender Code wirft bei mir zwei Fragen auf

1. wieso bekomme ich den Text im Control was mit der DLL erstellt wurde nicht mittig, auch nicht mit geändertem Style ?
2. wieso zieht sich der Rand nicht bis zum Spin durch, so wie bei dem normal erstelltem Control, sondern hört nach dem Edit auf ?
 $I SKControl.inc
 $H Windows.ph
 $H Messages.ph
Def GetSysColor(1) !USER32.DLL,GetSysColor
Def CreateSpinED(12) !COMCTL32.Dll,CreateUpDownControl
Declare SKDLL&
Declare Font&, Test1&, Test2&, Test3&, Test4&
SKDLL& = @UseDLL(SKControl.dll)
WindowStyle 2 + 8 + 16 + 128 + 256 + 512
Window 0,0-800,600
Cls GetSysColor($0F)
SKCtrl_InitDll()
Font& = @Create(Font,Arinal Narrow,14,0,1,0,0)
Test1& = SKCtrl_CreateColorEdit(%hWnd,,@RGB(0,0,0),@RGB(255,255,255),50,100,114,18,%hInstance)
Test2& = CreateSpinED($500000A6,0,0,0,0,%hWnd,80,%hInstance,Test1&,2020,1920,2007)
SetStyle Test1&,(@GetStyle(Test1&) + $1)
SetFont Test1&,Font&
Test3& = @Control(EDIT,,$540100C1,50,125,114,18,%hWnd,1070,%hInstance,$200)
Test4& = CreateSpinED($500000A6,0,0,0,0,%hWnd,80,%hInstance,Test3&,2020,1920,2007)
SetFont Test3&,Font&

WhileNot %Key = 2

    WaitInput

EndWhile

DeleteObject Font&
SKCtrl_DeInitDll()
End
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
16.04.2007  
 




Sebastian
König
Hallo Georg,

ich fürchte, die ColorEdits sind durch ihren internen Aufbau (normales Edit auf unsichtbarem Elternfenster) für den Einsatz zusammen mit UpDown-Controls nicht wirklich geeignet. Auch der übliche Weg über ~GetWindow(handle&,~GW_CHILD) funktioniert leider nicht... Ich versuche mal herauszufinden, was genau so ein UpDown-Control beim Erstellen mit dem angegebenen Edit so alles anstellt und gucke, ob es sich vielleicht durch eine Änderung der Fenster-Prozedur für die ColorEdits kompensieren lässt. Versprechen kann ich aber leider nichts...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
16.04.2007  
 




Georg
Hovenbitzer
Hallo Sebastian,

wenn du mit dem Zusammenspiel meinst, dass der Rahmen auch um den Spin geht, ist dies nicht so wichtig.
Interessant wäre, wieso der ES_CENTER Style nicht funktioniert, auch nicht auf dem Child Handle.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
16.04.2007  
 



Nicht jedermanns Lösung - aber in Okrea z.B. habe ich (wie auch viele andere Controls) selbst erzeugt - es sieht quasi aus als ob... 2 PictureStatics neben dem Edit.
 
17.04.2007  
 




Georg
Hovenbitzer
Hallo if,

um da durchzusteigen, bräuchte ich mal ein Demo

Man könnte es aber auch so machen:
 $H D:PrivatProfanXProfan10INCLUDEWindows.ph
 $H D:PrivatProfanXProfan10INCLUDEMessages.ph
 $H D:PrivatProfanXProfan10INCLUDEichedit.ph
Def GetSysColor(1) !USER32.DLL,GetSysColor
Def CreateSpinED(12) !COMCTL32.Dll,CreateUpDownControl
Declare RichDLL&
Declare Font&, Test1&, Test2&
RichDLL& = @UseDLL(RICHED32.DLL)
WindowStyle 2 + 8 + 16 + 128 + 256 + 512
Window 0,0-800,600
Cls GetSysColor(~COLOR_BTNFACE)
Font& = @Create(Font,Arinal Narrow,14,0,1,0,0)
Test1& = @Control(RichEdit,,$54010001,170,125,114,18,%hWnd,10,%hInstance,$0)
SetFont Test1&,Font&
Test2& = CreateSpinED($500000A6,0,0,0,0,%hWnd,20,%hInstance,Test1&,2020,1920,2007)
@SendMessage(Test1&,~em_SetBkGndColor,0,@RGB(213,214,145))

WhileNot %Key = 2

    WaitInput

EndWhile

DeleteObject Font&
@DestroyWindow(Test1&)
FreeDLL RichDLL&
End

Bei der Lösung gefällt mir nicht, dass der Text immer am oberen Rand hängt und einen Rahmen bekommt man auch nicht hin.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
17.04.2007  
 




Sebastian
König
Hallo Georg,

Georg Hovenbitzer
wenn du mit dem Zusammenspiel meinst, dass der Rahmen auch um den Spin geht, ist dies nicht so wichtig.
Interessant wäre, wieso der ES_CENTER Style nicht funktioniert, auch nicht auf dem Child Handle.


Ok, das konnte ich jetzt lösen Wie es aussieht, müssen die Stile für die Textausrichtung immer schon beim Erstellen angegeben werden und können nachträglich nicht mehr geändert wären. Als Ausweg bleibt nur, das Edit mit geändertem Stil neu zu erstelle. Bei den ColorEdits ist das zum Glück kein Problem - hier muss ja nur das interne normale Edit neu erststellt werden.

Im Anhang findest Du eine neue Version der DLL (1.22.04). Damit reagieren die ColorEdits nun auf SKCtrl_SetAlignment, sodass Du mit

SKCtrl_SetAlignment(Test1&,2)

den zentrierten Text einstellen kannst.

MfG

Sebastian

40 kB
Kurzbeschreibung: Version 1.22.04
Hochgeladen:17.04.2007
Ladeanzahl78
Herunterladen
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
17.04.2007  
 




Frank
Abbing

Wie es aussieht, müssen die Stile für die Textausrichtung immer schon beim Erstellen angegeben werden und können nachträglich nicht mehr geändert wären.


Bei vielen Controlstyles/Controls muss dazu nur die Grösse des Controls kurzzeitig geändert werden. Habs hier in dem Fall aber nicht getestet.
 
17.04.2007  
 




Sebastian
König

Bei vielen Controlstyles/Controls muss dazu nur die Grösse des Controls kurzzeitig geändert werden. Habs hier in dem Fall aber nicht getestet.


Ja, das war auch mein erster Gedanke . Hat aber leider nicht funktioniert....
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
17.04.2007  
 




Georg
Hovenbitzer
Hallo Sebastian,

es klappt sehr gut mit der neuen DLL.
Die Lösung mit der DLL ist zur Zeit die beste, da hier bis auf dem Rand alles klappt.
Seltsam ist nur, dass auch beim RichEdit das Problem mit dem Rand gibt.
Ich bekomme einfach nicht heraus welcher Style dafür zuständig ist.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
18.04.2007  
 




Sebastian
König
Hallo Georg,

Georg Hovenbitzer
Seltsam ist nur, dass auch beim RichEdit das Problem mit dem Rand gibt.
Ich bekomme einfach nicht heraus welcher Style dafür zuständig ist.


einen Rahmen bekommst Du, wenn Du an Control() als letzten Parameter ~WS_EX_CLIENTEDGE übergibst. Allerdings wird dann aus irgendwelchen Gründen nicht der XP-Stil für den Rahmen benutzt... Am besten bleibst Du also bei der DLL

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
18.04.2007  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.630 Betrachtungen

Unbenanntvor 0 min.
Rainer Hoefs08.06.2016
mene09.11.2013
Andre Rohland10.12.2012
Julian Schmidt11.12.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie