Kreslení do Graphics s UxTheme   otázka

VB.NET, Komponenty, WinForms, WinAPI, .NET

Zdravím,

snažím se vytahat grafiku z UxTheme.dll. Dekalarace fcí UxTheme:

Module UnsafeNativeMethods
    <DllImport("Uxtheme", EntryPoint:="OpenThemeData", CharSet:=CharSet.Unicode)> _
    Public Function openThemeData(ByVal hWnd As IntPtr, ByVal classList As String) As IntPtr
    End Function
    <DllImport("Uxtheme", EntryPoint:="CloseThemeData", SetLastError:=True)> _
    Public Function closeThemeData(ByVal hTheme As IntPtr) As <MarshalAs(UnmanagedType.Error)> Int32
    End Function
    <DllImport("Uxtheme", EntryPoint:="DrawThemeBackground", SetLastError:=True)> _
    Public Function drawThemeBackground(ByVal hTheme As IntPtr, ByVal hDC As IntPtr, ByVal iPartId As Int32, ByVal iStateId As Int32, ByRef pRect As Rectangle, ByVal nullRECT As IntPtr) As <MarshalAs(UnmanagedType.Error)> Int32
    End Function
End Module

Kreslení na Graphics Controlů není problém, schéma se na ně vykreslí.

Když ale kreslím do graphics od Bitmap:

        Dim a As New Bitmap(100, 26)
        Dim g As Graphics = Graphics.FromImage(a)
        g.Clear(Color.Lime)
        drawThemeBackground(openThemeData(Me.Handle, "window"), g.GetHdc(), 3, 1, New Rectangle(0, 0, 100, 26), IntPtr.Zero)
        a.Save("c:/test.bmp", Imaging.ImageFormat.Bmp)

Nic se nevykreslí..

Zkoušel jsem nechat kreslení na Control a do Bitmap vykreslit přes <Control>.DrawToBitmap(), ale efekt je stejný. Zatím to řeším tak, že vykreslím na Control a vykreslené zkopíruji přes Graphics.CopyFromScreen, ale to rozhodně není použitelné řešení. Netušíte, proč se mi nevykreslí schéma do Graphics od Bitmap?

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No máte to nějaké spletité. Co má vlastně být celkově výsledek?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Výsledkem má být funkce, která mi vrátí obrázek. Parametry jsou rozměry, a pak parametry funkce drawbackground.Prostě malý wrapper ma uxTheme. Potřebuji podle určitého scínáře generovat obrázky a pak je ukládat na disk.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback