GDI+ und Static Control



  • Halli Hallo,

    ich bin neu hier im Forum und hab gleich mal ne Frage :p

    Ich möchte per GDI+ ein Bild laden, es verändern und dann anzeigen. Jetzt habe ich versucht, es per GDI+ anzuzeigen, was auch funktioniert hat, allerdings ist das nur suboptimal, da das Bild beim überlagern anderer Fenster oder beim Resizen des Fensters wieder verschwindet (ich hoffe ihr wisst, was ich meine).

    Deswegen kam ich auf die Idee, das Bild per Static Control anzuzeigen. Ich hab dazu das große Internet durchsucht, hab aber nix gefunden was mir weiterhilft.

    Deshalb wollte ich mal fragen, ob ein Static Control für sowas der richtige Weg ist und wenn ja wie ein Ansatz dazu wäre, oder womit ich es sonst realisieren könnte?

    Edit: Achja ich hab vergessen zu erwähnen, dass ich mit Code::Blocks programmiere und MinGw nutze. Soviel dazu.

    Mfg, Martek 🙂



  • Hi,

    du solltest die Zeichenaktionen in die WM_PAINT packen, dann klappt's auch mit überlappten Fenstern usw.

    Für die zweite Möglichkeit sieh dir einmal den Fensterstil SS_BITMAP für statische Steuerelemente an ...

    Gruß



  • Ich hab im Static Control SS_BITMAP gesetzt, habe aber immer noch das Problem, das Bild in das Control zu bekommen.

    Die andere Möglichkeit hab ich noch nicht hinbekommen, bin noch am rumprobieren.
    Ich benutze folgenden Code, der bei dem Aufruf des Menupunkts funktioniert. Rufe ich ihn aber bei WM_PAINT auf, bekomme ich lauter errors beim Compilieren.

    GdiplusStartupInput gdiplusstartupinput;
    ULONG_PTR gdiplusToken;
    GdiplusStartup(&gdiplusToken, &gdiplusstartupinput, NULL);
    
    Image image(L"e:\\test.tif");
    Graphics graphics(imageViewer, FALSE);
    graphics.DrawImage(&image, 0, 0);
    

    Hat vielleicht jemand ne Idee?

    Mfg, Martek


Log in to reply