2013-08-03 2 views
1

CreateWindowEx() 함수를 사용하여 목록보기 컨트롤을 만듭니다. 작성 중에 지정한 확장 스타일은 목록보기 컨트롤에 적용되지 않습니다.목록보기 컨트롤이 확장 스타일을 무시합니다.

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); 

그것은 몇 가지 내용을 추가 한 후, 목록보기의 모양은 아래 그림과 같이이다 :

여기 내 코드입니다. 보시다시피

appearance of my list-view

, 나도 전체 행을 선택할 수 없으며, 그리드 라인이 표시됩니다.

무엇이 누락 되었습니까? 확장 스타일의 효과를 어떻게 보이게합니까?

답변

6

목록보기 컨트롤의 경우 확장 된 스타일은 LVM_SETEXTENDEDLISTVIEWSTYLE 메시지를 컨트롤 창에 보내서 명시 적으로 설정됩니다. 이것은 문서에 명시되어

Extended List-View Styles

는 이러한 확장리스트 뷰 컨트롤 스타일을 사용하는 LVM_SETEXTENDEDLISTVIEWSTYLE 메시지 또는 ListView_SetExtendedListViewStyle 또는 ListView_SetExtendedListViewStyleEx 매크로 중 하나를 사용합니다. 예를 들어

:

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

확장 스타일은이 메시지를 전송 한 후 적용됩니다.

successfully creat

관련 문제