GDI+ nach Minimieren

  • Moin,

    Ich schon wieder zu GDI+^^
    Komme mir gerade echt blöde vor, ich weiß das ich das sogar schonmal verwendet habe und das ich das auch mal im Inet gefunden habe aber ich find einfach nichts mehr :( Sorry wenn ich jetzt nervige frage stelle...aber wenn ich Fenster mit GDI+-Zeichnung minimiere und wieder aufrufe ist ja weg und da habe ich im Kopf das man dafür benutzt damit es nach dem WIederherstellen neu gezeichnet wird und auch wenn man es zum Beispiel unten aus dem Bildschrimbereich schiebt das es dann neu gezeichnet wird weil das ja sonst da auch "geputzt" ist

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <WindowsConstants.au3>
    $h_Gui1 = GUICreate ("Test",1024,768)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUISetState ()
    _GDIPlus_Startup()
    $h_Grafic = _GDIPlus_GraphicsCreateFromHWND($h_Gui1)
    ;~ _GDIPlus_GraphicsSetSmoothingMode ($h_Grafic,2)
    $f_Famaily = _GDIPlus_FontFamilyCreate ("Arial")
    $f_Arial = _GDIPlus_FontCreate($f_Famaily, 19)
    $p_Brush = _GDIPlus_BrushCreateSolid (0xFFFF0000)
    $h_Format = _GDIPlus_StringFormatCreate ()
    $g_Table = _GDIPlus_BitmapCreateFromGraphics(1024, 768, $h_Grafic)
    $b_Table = _GDIPlus_ImageGetGraphicsContext($g_Table)
    ;~ _GDIPlus_GraphicsSetSmoothingMode ($b_Table,2)
    $t_Layout = _GDIPlus_RectFCreate (150,108)
    $a_Info = _GDIPlus_GraphicsMeasureString ($b_Table,"Test blaaa blaa AutoIt.de",$f_Arial,$t_Layout,$p_Brush)
    _GDIPlus_GraphicsDrawStringEx ($b_Table,"Test blaaa blaa AutoIt.de",$f_Arial,$a_Info[0],$h_Format,$p_Brush)

    [/autoit] [autoit][/autoit] [autoit]

    GUIRegisterMsg ($WM_MOVE,"_Draw")
    _Draw()
    While 1
    Switch GUIGetMsg ()
    Case -3
    Exit
    EndSwitch
    WEnd
    Func _Draw()
    _GDIPlus_GraphicsDrawImageRect($h_Grafic, $g_Table, 0, 0,1024,768)
    EndFunc

    [/autoit]

    mfg. Jam00

    Einmal editiert, zuletzt von Jam00 (6. Juli 2011 um 15:11)

  • Mit GUIRegisterMsg das Event $WM_PAINT registrieren und damit eine Funktion aufrufen, die das Fenster komplett neu zeichnet bzw. den Backbuffer auf den Frontbuffer zeichnet. Wenn du danach im Forum suchst, findest du sicher auch noch ein Beispiel. ;)