Question

I create a list-view control with the CreateWindowEx() function. The extended styles I specify during the creation do not apply to the list-view control.

Here is my code:

INITCOMMONCONTROLSEX iccx;
iccx.dwSize = sizeof(INITCOMMONCONTROLSEX);
iccx.dwICC  = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&iccx);

hWnd = CreateWindowExW( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES,    // Extended Styles
                        WC_LISTVIEWW,                               // Class Name
                        L"",                                        // Title
                        LVS_REPORT | WS_VISIBLE | WS_CHILD,         // Styles
                         10,    // x
                        320,    // y
                        480,    // w
                        200,    // h
                        hWndParent,
                        NULL,
                        hInstance,
                        NULL);

After adding some content to it, the appearance of the list-view is as in the image below.

appearance of my list-view

As you see, neither I can select full rows, nor the grid-lines are displayed.

What am I missing? How do I make the extended styles show effect?

Was it helpful?

Solution

For list-view controls, extended styles are explicitly set by sending the LVM_SETEXTENDEDLISTVIEWSTYLE message to the control window. This is stated in the documentation:

Extended List-View Styles

Use the LVM_SETEXTENDEDLISTVIEWSTYLE message or one of the ListView_SetExtendedListViewStyle or ListView_SetExtendedListViewStyleEx macros to employ these extended list-view control styles.

For example:

SendMessageW(   hWnd,
                LVM_SETEXTENDEDLISTVIEWSTYLE,
                LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES,
                LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

Extended styles apply only after sending this message.

successfully creat

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top