Einsteigerfragen zur PROFAN Programmierung

| Suchen
| Zurück zur Übersicht

Autor | Thema: weiter Fenster
Stefan Müller
| 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
Stefan Schnell
| 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
Stefan Müller
| 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
Stefan Schnell
| 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
Stefan Schnell
| 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
Frank Abbing
| 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
Stefan Müller
| 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
Thomas Ungerböck
| 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

| Zurück zur Übersicht

| Ein kostenloses WebMart Forum WebMart Homepage Tools kostenlos |