Textgadget resize - Text falsch dargestellt (kein Bug)

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Die Styles kannst du auf MSDN nachschlagen. Beim Textgadget handelt es
sich um ein Static-Fenster , also schaut man unter Static nach und findet das hier : http://msdn.microsoft.com/library/defau ... styles.asp
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Beitrag von PureLust »

Hi hallodri, ...

vielen Dank für den Link und den generellen Hinweis auf die MSDN.


Bei sowas zeigt sich mir halt immer wieder dass ich scheinbar große Defizite habe, was meine Fähigkeit angeht, Informationen in der MSDN finden.

Mal eine Frage dazu:
Woher weist Du denn z.B. dass ein PB-TextGadget ein Static-Fenster ist und wo Du dann bezüglich eines Static-Fensters in der MSDN nachschlagen kannst.
Steht sowas irgendwo, wodurch man dann solche Rückschlüsse (also z.B. PB-TextGadget = Static Control) ziehen kann?

Gibt es vielleicht irgendwo sowas wie: The Hitchhikers Guide To The MSDN ???

Oder gibt es sonst in irgendeiner Form Listen oder gute Doku dazu?
Nutzt Du diesbezüglich evtl. irgendwelches Wissen aus der C-Welt?
Oder woher weisst Du sowas einfach?

So würde ich mich z.B. auch gerne noch tiefer mit anderen Sprachen auseinandersetzen.
Mein hauptsächlicher Grund, mich nicht an C++ oder C# zu versuchen ist aber der, dass ich momentan überhaupt nicht wüsste, wie ich z.B. an solche Informationen oder auch Informationen und Unterlagen zu den tausenden und abertausenden Libs und Bibliotheken heran kommen könnte, ohne die C++ bzw. C# ja kaum brauchbar wären.

Hättest Du diesbezüglich vielleicht noch einen guten Rat, der mich da auf den richtigen Weg schubsen könnte?
Gibt es evt. irgendwelche guten C#-Bücher, die leichtverständlich geschrieben sind und einem u.A. dann eben auch den Zugriff auf solche Informationsquellen erläutern?

Big ThanX, PL.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Wenn du mehr ueber Windowsprogrammierung wissen moechtest
solltest du dir "den Petzold" kaufen, gibt es in jedem Buchladen.
http://www.amazon.de/exec/obidos/ASIN/3 ... 08-8591453

Eine Alternative zu MSDN , die nun wirklich umfangreich ist , ist das PSDK,
oder, falls zu gross, die Win32 Hilfe (alt) .

(PSDK ISO)
http://www.microsoft.com/downloads/deta ... 1E0F19CA0D

(PSDK WEB)
http://www.microsoft.com/downloads/deta ... C0C0716ADB

(WIN32 HELP)
http://purebasic.de/files/win32.zip

Unteranderem nutze ich WinSpy++, was du hier finden kannst
http://www.catch22.net/software/ - http://www.catch22.net/software/winspy.asp
Damit kann man einiges an Infos (z.b. um welche Fensterklasse es sich handelt)
aus einem Fenster lesen , oder etwa auch Styles setzen/testen.
mar
Beiträge: 107
Registriert: 06.08.2005 14:49

Beitrag von mar »

Hi,
Man kann SSE_Simple setzen (Linux??) oder man muss beim Repaint event das TextGadget neu beschriften.

(kleine Korrekturen unten)
mar

Code: Alles auswählen

#Window=0 : #Rand=5 : #HeightStart=400 : #WidthStart=730 : #TextGadgetHight = 25
If OpenWindow(#Window, 0, 0,#WidthStart, #HeightStart, "SplitterGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget)
  If CreateGadgetList(WindowID(#Window))
    
    #Button1  = 0 : #Button2  = 1 : #Button3  = 2 : #Button4  = 3
    #Splitter1 = 10 : #Splitter2 = 11 : #Splitter3 = 12
    #TextGadget = 20
    
    ButtonGadget(#Button1,0, 0, 0, 0, "Button 1") ; es besteht keine Notwendigkeit, die Größe oder Position
    ButtonGadget(#Button2,0, 0, 0, 0, "Button 2") ; festzulegen, da sie automatisch in der Größe angepasst werden
    SplitterGadget(#Splitter1, 0, 0, 0, 0, #Button1, #Button2, #PB_Splitter_Separator)
  
    ButtonGadget(#Button3,0, 0, 0, 0, "Button 3") ; es besteht keine Notwendigkeit, die Größe oder Position
    ButtonGadget(#Button4,0, 0, 0, 0, "Button 4") ; festzulegen, da sie automatisch in der Größe angepasst werden
    SplitterGadget(#Splitter2, 0, 0, 0, 0, #Button3, #Button4, #PB_Splitter_Separator)
  
    SplitterGadget(#Splitter3, #Rand, #Rand, WindowWidth(#Window)-2*#Rand, WindowHeight(#Window)-#TextGadgetHight-2*#Rand, #Splitter1, #Splitter2, #PB_Splitter_Vertical|#PB_Splitter_Separator)
    
    TextGadget(#TextGadget, #Rand, WindowHeight(#Window)-#TextGadgetHight+#Rand, WindowWidth(#Window)-2*#Rand, #TextGadgetHight-2*#Rand, "Obiger GUI-Abschnitt zeigt vier sich automatisch in der Größe anpassende Schalter. Auch beim Resize vom gesamten Window passen sich alle Gadgets an.",#PB_Text_Center )
    
    Repeat 
      event=WaitWindowEvent() 
      
      Select event
        Case #PB_Event_SizeWindow
          ResizeGadget(#Splitter3,#PB_Ignore, #PB_Ignore , WindowWidth(#Window)-2*#Rand, WindowHeight(#Window)-#TextGadgetHight-2*#Rand) ; Ändert nur die Gadgetbreite.
          ResizeGadget(#TextGadget,#PB_Ignore, WindowHeight(#Window)-#TextGadgetHight+#Rand , WindowWidth(#Window)-2*#Rand, #TextGadgetHight-2*#Rand) ; Ändert nur die Gadgetbreite.
          Debug "resize"
        Case #PB_Event_Repaint
          SetGadgetText(#TextGadget, GetGadgetText(#TextGadget))
          Debug "repaint"
        Default
          Debug event
      EndSelect        
    Until event = #PB_Event_CloseWindow
        
  EndIf
EndIf
Gesperrt