Autor | Thema: weiter Fenster | | Datum:16.09.02 09:52 
(panapaul@web.de) | |
Hallo!
Ich habe ein Hauptfenster laufen und möchte nun ein weiteres Fenster öffnen und dort den Inhalt des Hauptfenster hinein kopieren. Leider kann ich dem neuen Fenster keinen eigenen Style zuweisen und ich habe Probleme dieses Fenster zu aktivieren und den Inhalt hinein zu schreiben. Jemand eine Idee?
Stefan
|
| | Datum:16.09.02 10:23 
(mail@stschnell.de) | |
Hallo Stefan,
folgendes Codefragment bietet Dir die Möglichkeit mehrere Fenster mit unterschiedlichen Stilen in einem Programm zu öffnen, und diese dann auch entsprechend zu aktivieren:
Declare hWin1%, hWin2%
WindowStyle 31
hWin1% = @Create("Window", %hWnd, "Fenster1", 0, 0, 640, 480)
WaitKey
WindowStyle 512
hWin2% = @Create("Window", %hWnd, "Fenster2", 100, 100, 640, 480)
WaitKey
@SetActiveWindow(hWin1%)
WaitKey
@SetActiveWindow(hWin2%)
WaitKey
End
Die Funktion WaitKey habe ich nur eingefügt, zum besseren Verständnis des Programmablaufes.
Hoffe konnte Dir etwas weiter helfen.
Tschüss
Stefan
|
| | Datum:16.09.02 13:03 
(panapaul@web.de) | |
Hallo!
Erst einmal vielen Danke, aber:
Declare hwin1%, hwin2%
Windowstyle 31
hwin1% = @createwindow(%HWnd,"Fenster1",0,0,640,480)
waitkey
windowstyle 512
hwin2% = @createwindow(%HWnd, "Fenster2",0,0,640,480)
waitkey
@setactivewindow(hwin1%)
drawtext 50,50, "Inhalt 1. Fenster"
waitkey
@setactivewindow(hwin2%)
drawtext 100,100, "Inhalt 2. Fenster"
waitkey
Der Text wird immer in das Handle Hwnd geschrieben. Wie kann ich das ändern???
Stefan
|
| | Datum:16.09.02 13:20 
(mail@stschnell.de) | |
Hallo Stefan,
so funktnioniert es:
Declare hwin1%, hwin2%
Windowstyle 31
hwin1% = @createwindow(%HWnd,"Fenster1",0,0,640,480)
waitkey
windowstyle 512
hwin2% = @createwindow(%HWnd, "Fenster2",100,100,640,480)
waitkey
@setactivewindow(hwin1%)
@createtext(hwin1%, "Inhalt 1. Fenster", 50, 50, 150, 24)
waitkey
@setactivewindow(hwin2%)
@createtext(hwin2%, "Inhalt 2. Fenster", 100, 100, 150, 24)
waitkey
End
Tschüss
Stefan
|
| | Datum:16.09.02 13:28 
(mail@stschnell.de) | |
Hallo Stefan,
noch ein kleiner Nachtrag: Der Befehl für SetActiveWindow muss nicht sein, es funktioniert auch ohne.
Tschüss
Stefan
|
| | Datum:16.09.02 14:02 
| |
Hallo,
schau mal in der Profan-Hilfe unter StartPaint / EndPaint nach, das ist das was du suchst.
Gruß, Frank
|
| | Datum:16.09.02 15:17 
(panapaul@web.de) | |
Hallo!
Also Startpaint und Endpaint hat "leichte" Sorgen, wenn man ein beliebiges anderes Fenster darüber schiebt. Dann ist der Inhalt nämlich verschwunden. Deshalb ist die Variante mit Createtext doch die bessere Alternative. Trotzdem noch mal Danke an alle, die sich bemüht haben. :-)
Besonders an Stefan, weil seine Ideen mich auf den richten Pfad der Tugend brachten.
Stefan
|
| | Datum: 16.09.02 18:47 
(Kerzenlicht@chello.at) | |
Hallo
Für diese Sorgen gibts SetAutoPaint und %WmPaint.
Hier ein kleiner Quellcode zum Testen:
Proc Zeichnen
Startpaint Fenster1&
Cls 7286213
UseFont "Arial",20,10,0,0,0
TextColor RGB(103,106,152),-1
Drawtext 100,100,"Fenster1"
Drawtext 100,130,"Weiter mit Enter"
Drawtext 100,160,"Ende mit Esc."
Endpaint
Endproc
Proc Unterprogramm
SetAutoPaint 1
SettrueColor 1
Declare Fenster1&
Fenster1&=@Createwindow(%Hwnd,"Untergeordnetes Fenster",50,50,500,500)
Zeichnen
While 1
Getmessage
Sleep 10
If %WmPaint
Zeichnen %Hwnd,1,"Arial",7286213
Elseif @Equ(&Wparam,27)
End
Elseif @Equ(&Wparam,13)
Break
Endif
Wend
SetAutoPaint 2
@DestroyWindow(Fenster1&)
Endproc
Windowstyle 32
Windowtitle "Hauptfenster"
Window 0,0-800,600
Declare Fenster1&
Cls 7286028
UseFont "Courier",20,10,0,0,0
TextColor RGB(103,106,152),-1
Drawtext 100,100,"Hauptfenster"
Drawtext 100,130,"Weiter mit Enter"
Drawtext 100,160,"Ende mit Esc."
While 1
Waitinput
If @Equ(%Scankey,27)
End
Elseif @Equ(%Scankey,13)
Sleep 500
Unterprogramm
Endif
Wend
Natürlich kannst du in das Fenster auch noch hineinzeichnen oder ein Bild anzeigen.
Gruß Thomas
|
|
|