Gdi+ Tutorial [Part 5]

  • hat jemand vielleicht irgendwo noch "GdiPlus Beispiel 1.zip" liegen?
    Irgendwie ist da ein Stück des Tuts verloren gegangen.

    mfg Ubuntu

    Edit: Ohh ********************
    Da ist ja ein ganz schön grosser Teil flöten gegangen. ;(
    Das hat nicht zufällig jemand gespeichert :?:

  • sorry hab nur Beispiel 2 bei mir gefunden.
    Hab eine Frage, hoffe das die jemand beantworten kann:
    Mit dem _Draw String, kann man dort auch irgendwie Fett oder Kursiv etc. zeichnen lassen?

  • danke schonmal,
    hab leider keine Ahnung was das ist ;(
    Meinst du diesen Parameter?:

    Zitat

    $sFont ; die Schriftart des gezeichneten Strings (Standart: Arial)

    Wenn ja, was muss ich für "Fett" angeben?
    Wenn nein, was muss ich stattdessen tun?

    Danke für eure Hilfe & Unterstützung!

  • Nimm am besten _GDIPlus_GraphicsDrawStringEx in Verbindung mit _GDIPlus_FontCreate.

  • Es geht momentan warscheinlich erst mal nicht weiter, da mein Pc nicht richtig funktioniert. ;( (ich arbeite dran)

    Tut mir leid.

    mfg Ubuntu

  • schade :(
    will auch mal die fortgeschrittenen themen kennenlernen^^

    Zitat

    Tut mir leid.

    Warum? Du kannst doch nichts dafür dass dein PC nicht richtig läuft :)

    [autoit]


    While $Life = True
    $nMSG = BrainGetMsg()
    Switch $nMSG
    Case $Idea
    _Convert_Idea2Code()
    EndSwitch
    WEnd

    [/autoit]
  • Danke, dieses Tutorial hat mir wirklich sehr geholfen.
    Ich freu mich schon auf die Fortsetzung...

    Wenn hier in diesem Thread noch regelmäßig Leute reinschauen,
    könnt ihr mir kurz helfen?

    Kann man mit GDI+ eine .gif-Animation starten/ausführen?
    Hab das Bild eingebunden, es erscheint, wird bloß nicht abgeespielt.

    Erklärung evtl als PN? Danke!

  • In GDI+ wid keine .gif animation angezeigt. Wenn du ein Bild animieren willst, musst du es in mehrere Einzelbilder teilen und dann die Bilder nacheinander aufmalen.

  • Schönes Tutorial, für das ich heute endlich mal die Zeit gefunden habe.
    Leider ist der Download des Pc Info Tool down.

    Ich habe mich für allem für GDI+ für eine Gui interressiert und das jetzt auch mal nachgemacht.
    Also Gui mit png als Hintergrund, darauf Controls.
    Wenn ich das Fenster nun aber über den Bildschirmrand hinaus bewege, bleiben zwar die Controls sichtbar, aber der Hintergrund verschwindet.
    Wenn ich den Hintergrund nun neu Zeichnen lasse, überlappt dieser die Controls, die erst durch anklicken wieder darüber liegen.
    Was mache ich falsch bzw. wie kann ich das verhindern ?

  • Hallo SlowlyDead,

    hier ein Skript von UEZ:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

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

    Global $hGUI, $hImage, $hGraphic, $hImage
    Global Const $SC_DRAGMOVE = 0xF012

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

    ; Create GUI
    $hGUI = GUICreate("Show PNG", 575, 300, -1, -1, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_TOPMOST)
    GUISetBkColor(0x01, $hGUI)
    GUISetState()
    _WinAPI_SetLayeredWindowAttributes($hGUI, 0x01, 0xFF, 3)

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

    ; Load PNG image
    _GDIPlus_StartUp()
    $hImage = _GDIPlus_ImageLoadFromFile("C:\Dokumente und Einstellungen\Bert\Eigene Dateien\Beetle7.png")
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)

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

    $Input1 = GUICtrlCreateInput("Input1", 156, 132, 121, 21)
    $Input2 = GUICtrlCreateInput("Input2", 156, 156, 121, 21)
    $Input3 = GUICtrlCreateInput("Input3", 156, 180, 121, 21)
    $Slider1 = GUICtrlCreateSlider(128, 212, 150, 45)
    $Button1 = GUICtrlCreateButton("Start", 208, 276, 75, 25)

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

    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Button1
    ExitLoop
    Case $GUI_EVENT_PRIMARYDOWN
    _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)
    EndSwitch
    WEnd

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

    ; Clean up resources
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_ShutDown()
    Exit

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

    ; Draw PNG image
    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
    _WinAPI_RedrawWindow($hGUI, 0, 0, 1)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]

    mfg autoBert

  • Gutes Tutorial !

    Ich wollte schon lange mich mit GDI+ beschäftigen und das hat mir sehr dabei geholfen die logik zu verstehen und so :love: