• Wie kann ich ein Fenster, viel höher als der Bildschirm, erstellen und das Fenster beliebig in der Höhe mit einer Scroll-Leiste auf- und abschieben?


    Geht das überhaupt?


    Ähnlich wie das Fenster Arbeitsplatz bzw. Computer.


    Schöne Feiertage.
    Gruß
    Gerhard.

  • Hallo Frank,


    Ich möchte eine Prozedur erstellen mit der ich in einem Fenster mithilfe von CreateArea ein JPG-Bild in voller Größe anzeigen kann (mit scrollen).


    Grundsätzlich funktioniert es schon.


    Da ich bei DrawPic erfolglos ein Neuzeichnen versuchte zeige ich das Bild mit einem

    Code
    @Create("PicButton",Frame1&,HPic&,1,1,%BmpX,%BmpY)

    an.
    Nur ruckelt das Bild beim Scrollen.


    Da ich meine, dass PicButton nur eine Ausweichlösung ist würde ich DrawPic bevorzugen.
    Und möglicherweise würde es mit DrawPic nicht ruckeln.


    Das Programm (erstellt mit XProfan11) mit 2 Bildern kann von http://www.gerhard-putschalka.xprofan.com/Test4.zip heruntergeladen werden (Ungef. 5,4MB).


    Gruß
    Gerhard.

  • Ja, damit geht es besser. Je einfacher das Control, desto weniger Störungen werden provoziert es. Buttons lösen viele Messages aus, werden oft neu gezeichnet (hovern), usw.

    Gruß, Frank

  • Hallo,


    Im Prinzip funktioniert es so wie ich möchte.
    Leider wird der Schirm zwischen den Bildern immer grau anstatt schwarz zu bleiben.


    Ich musste in der Prozedur (Zeile 59/60) das Fenster mit Create erstellen um am Prozedurenende dieses wieder zerstören zu können.
    Dabei tritt das Problem auf, dass ich das erstellte Fenster trotz CLS @RGB(0, 0, 0) nicht schwarz setzen kann.


    Zum Test muss nur das Programm Test4.prf durch den nachstehenden Code ersetzt werden.

    Beim Test sind 2 Traceon+Traceoff eingebaut. Diese zeigen, dass das durch Create Window erstellte neue Fenster nicht schwarz gesetzt wird.


    Gibt es dafür eine Lösung?


    Schönen Feiertag.


    Gruß
    Gerhard.

  • Das kann ich grad mit meinem Netbook nicht testen (löst Bluescreen aus).
    Du musst eben dafür sorgen, dass der Hintergrund schwarz gehalten wird. So z.B.:


    Code
    ~SetClassLong(%hwnd, ~GCL_STYLE, (~GetClassLong(%hwnd, ~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))


    Ausdokumentieren, weil dadurch das Hintergrund-Löschen vor dem Neuzeichnen unterbunden wird.


    Code
    Def CreateSolidBrush(1) !"gdi32","CreateSolidBrush"
    ~SetClassLong(?_area_plus&, ~GCL_HBRBACKGROUND, CreateSolidBrush(0))


    Der Area einen anderen Hintergrund-Brush verpassen.


    Code
    ElseIf (SubClassMessage(&sWnd, ~WM_ERASEBKGND))
      ~SelectObject(&sWParam, ~GetClassLong(&sWnd, ~GCL_HBRBACKGROUND))
      ~BitBlt(&sWParam, 0, 0, ?_virtx_plus&, ?_virty_plus&, &sWParam, 0, 0, ~BLACKNESS)
      Set("WinProc", 0)


    Im Area-Subclassing einfügen, um den Brush beim Löschen zusätzlich schwarz zu zeichnen.


    XProfans Subclassing eignet sich leider nicht wirklich für solche Dinge. Beispielsweise scheint es keine Möglichkeit zu geben, mit einem Returnwert in die originalen Windowsprozedur zu gehen. Das setzen aber einige Messages vorraus.
    Musst halt mal bischen rumfummeln, wie gesagt, dein Code erzeugt bei mir auf dem kleinen Netbook einen Totalabsturz. Meine Democodes nicht. :)

    Gruß, Frank

  • Hallo Frank,
    auf meinem Notebook mit W7 funktioniert mein Testprogramm problemlos. Auf einem anderen Notebook und auf einem Tower, beide mit XP, erscheint auch der BlueScreen.


    Da die Bildanzeige im endgültigen Programm auch (noch andere) Fehler zeigt :evil: werde ich versuchen einen anderen Weg zu finden.


    Vorerst vielen Dank.
    Gerhard.

  • Hallo Gerhard,
    ich habe hier noch einen, warum auch immer, unvolledetes Beispiel mit Franks Sroll-Arera und Listview.dll. Vielleicht kanst du daraus einige Anregungen ziehen.

    Gruß Thomas


    PS.: Grund war sicher, weil mir zu langsam, gelegentlicher Abbruch und unvollständiger Bildneuaufbau, wenn das vorherige gescrollt wurde (läßt sich sicher einfach beheben).

    Gruß Thomas

  • Zitat

    Auf einem anderen Notebook und auf einem Tower, beide mit XP, erscheint auch der BlueScreen.


    Wie gesagt, bei mir ebenfalls.
    Die Area-Democodes hingegen sind niemals abgestürzt. Da ist bei dir irgendwo der Wurm drin.

    Gruß, Frank

  • Hallo Frank,


    ich versuche jetzt einen anderen Weg. Dein Beispiel Grosse_Bitmap-Icons.prf schien mir dazu geeignet.


    Zwar kann ich ein Bild 3008x2000 einfügen jedoch gelang es mir nur mit dem hor. Scoll-Balken das Bild in der Breite ganz anzuzeigen. Leider gibt es keinen vertikalen Scoll-Balken um das Bild auch in der Höhe zu verschieben.
    Meine Frage: geht das überhaupt? Wenn ja: wie kann ich die Zeilenhöhe (für dieses Beispiel) auf 2000 einstellen?


    Es wäre schön wenn das möglich wäre.


    Von http://www.gerhard-putschalka.xprofan.com/test1.zip kannst Du meinen Versuch herunterladen.


    Vielen Dank (für meine Lästigkeit).


    Gerhard

  • Nein, Gerhard. Ich glaube nicht, dass sich das Listview vertikal so steuern lässt. Du kannst bei BuildListview mehrere Zeilen erzeugen und bekommst dann den Scroller, aber wirklich vernünftig scrollen ist nicht.
    Habe aber noch einen Code bei mir gefunden, der dir evt. weiterhilft:


    Müsste das sein, was du suchst. Quelle leider unbekannt, dürfte umgewandelter Xps-Codes ein. Schau ihn dir einfach an.

    Gruß, Frank

  • Und wie wär's mit einem WebControl "HTMLWin"


    Gruß Thomas

    Gruß Thomas

  • Hallo Thomas, hallo Frank,


    vorerst vielen Dank. Jetzt habe ich einiges zum Probieren. :smile:


    Wenn ich eine brauchbare Lösung gefunden habe melde ich mich wieder.


    Gerhard.

  • Hallo Thomas,


    ich denke Deine WEB-Version ist die einfachste und erscheint mir als die braubarste Lösung. ;)
    Bist Du einverstanden dass ich sie in meiner BidlShow verwende und auf meine H.P. stelle?
    Auch vielen Dank an Frank. ;)


    Gruß
    Gerhard.

  • Hallo Gerhard,
    das kannst du.
    Ich hatte Weiteres versucht (html style) und bin aber mit dem Bildwechsel nicht zufrieden.
    Vielleicht sollte man es mit eingebautem JS machen.
    Du kennst dich da ja auch aus oder hast eine bessere Lösung gefunden.


    Gruß Thomas

    Gruß Thomas

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!