Autor Beitrag
KainPlan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Vista Buisness, Windows 7
C/C++, C#, PHP...
BeitragVerfasst: So 22.02.09 02:04 
Aloha ich hab wiedermal ein problem. Und zwar möchte ich gerne eine ListView haben die EXAKT die des Explorer (Vista) immitiert. Bisher habe ich einen sehr gut funktionierenden Contextmenu hook und die ListView ähnelt schon sehr der des Explorers.

Das Problem: Die ListView weißt ein seltsames verhalten auf. Wenn ich TRANSPARENTSHADOWTEXT und TRANSPARENTBKGND nach DOUBLEBUFFER setze funktioniert die "Blaueselektion" nicht, aber wenn ich es mal schaffe das der Shadow hinter dem Text gezeichnet wird verhält sich das beim selektieren / deselektieren ganz eigenartig.

vielleicht hat sich damit ja schon jemand von euch beschäftigt? Ich jedenfalls bin an dem Punkt angekommen wo ich jetzt erstmal nicht mehr weiterkomme. HILFE!! :)

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
        private const int LVM_FIRST = 0x1000; //Value from http://www.winehq.org/pipermail/wine-devel/2002-October/009527.html
        private const int LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54;
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
        //Imports the UXTheme DLL
        [DllImport("uxtheme", CharSet = CharSet.Unicode)]
        private extern static Int32 SetWindowTheme(IntPtr hWnd, String textSubAppName, String textSubIdList);
        
        protected override void InitLayout()
        {
            base.InitLayout();


            SetWindowTheme(this.Handle, "explorer", null); //Explorer style
            SendMessage(this.Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, Win32.ComCtrlListView.ExtendedStyles.LVS_EX_TRANSPARENTBKGND);
            SendMessage(this.Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, Win32.ComCtrlListView.ExtendedStyles.LVS_EX_TRANSPARENTSHADOWTEXT);
            SendMessage(this.Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, Win32.ComCtrlListView.ExtendedStyles.LVS_EX_DOUBLEBUFFER);
            
        }
KainPlan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Vista Buisness, Windows 7
C/C++, C#, PHP...
BeitragVerfasst: Mo 23.02.09 12:19 
Wirklich niemand eine Idee??
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 23.02.09 12:22 
Ich glaube fast, da wirst Du in der Windows-API-Sparte unseres Delphi-Forum mehr Leute finden, die sich damit auskennen. :nixweiss:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
KainPlan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Vista Buisness, Windows 7
C/C++, C#, PHP...
BeitragVerfasst: Di 24.02.09 16:45 
Hm, okay. Ich versuch es mal woanders.

Crossthread: www.mycsharp.de/wbb2...d.php?threadid=68242