Nach so vielen Stunden Frust brauch ich mal einen Profi:
ich will die Taskleiste neu zeichnen nachdem ich mit dem GDI drauf gezeichnet habe.
Bei allen anderen Fenstern tut es eine WM_paint nur bei der Taskleiste und dem Desktop nicht.
Was ist zu tun?
C
#include <WinAPI.au3>
#include <SendMessage.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
_GDIPlus_Startup()
Sleep(150)
$hDC = _WinAPI_GetWindowDC( 0 ) ; DC of entire screen (desktop)
$hGraphic = _GDIPlus_GraphicsCreateFromHDC( $hDC )
_GDIPlus_GraphicsDrawString( $hGraphic, "deleting...", @DesktopWidth - 400 , @DesktopHeight - 18 )
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
; STRING WIEDER ENTFERNEN????????
Opt('WINTITLEMATCHMODE', 4)
$hWnd = WinGetHandle( "classname=Shell_TrayWnd" )
; 1 geht nicht
_SendMessage( $hWnd , $WM_PAINT , 0 , 0 )
; 2 geht nicht
_SendMessage( $hWnd , $WM_ERASEBKGND , 0 , 0 )
; 3 geht nicht
_WinAPI_RedrawWindow( $hWnd )
; 4 geht nicht
$paint = DllStructCreate("int;int;long;long;long;long;int;int;byte[32]")
DllCall("user32.dll", "int", "EndPaint", "hwnd", $hWnd , "ptr", DllStructGetPtr($paint))
; 5 geht nicht
WinSetState( $hWnd, '' , @SW_RESTORE)
; 6 geht nicht
WinSetState( $hWnd , '' , @SW_SHOW )
Alles anzeigen
Gruß
Blues
PS: Warum bekomme ich keine Email-Benachrichtigungen wenn auf eins meiner Themen geantwortet wird, obwohl ich dass schon 3x eingestellt habe?