Programming Tips - How do I use a list view (multi column table) in a non-Visual

Date: 2007nov19 Platform: win32 OS: Windows Language: C/C++ Keywords: listview Q. How do I use a list view (multi column table) in a non-Visual Studio Program? A. In the .rc (resource) file add this:
CONTROL "", IDC_MY_LISTVIEW, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_NOSORTHEADER | WS_CHILD | WS_VISIBLE | WS_BORDER, 0, 0, 200, 100
Near the beginning of your program call:
InitCommonControls();
Create the columns:
hwndMyListView = GetDlgItem(hDlg, IDC_MY_LISTVIEW); ListView_InsertColumn(hwndMyListView, ...);
Do other functions with the ListView_* macros. http://www.google.com/search?q=List-View+Controls+Macro Once you have it going you'll notice that you can only select the first column. One solution is to add LVS_OWNERDRAWFIXED to the .rc file and write your own code to draw the row -- which is a bit of a pain. http://www.google.com/search?q=LVS_OWNERDRAWFIXED Or, easier, you can not specify LVS_OWNERDRAWFIXED and process the NM_CUSTOMDRAW messages (which is sent in WM_NOTIFY). http://www.google.com/search?q=NM_CUSTOMDRAW