I use a ListView control in many UserForms. This control comes with Office 2007 (mscomctl.ocx).
This control is very helpfull when some information must be show in tables/cells, with column header (resizing, reordering), grid lines, different text color in each cells, checkboxes for items, …
I can’t replace this control with a ListBox, because a ListBox control doesn’t provide many features I need.
Unfortunately, Microsoft doesnt’t provide an equivalent ActiveX for 64 bits version of Windows.
I’m looking if its possible to make calls to Windows API functions, in order to create an fill the ListView.
I also use ListView controls in C/C++ programs : I tried to translate some C/C++ code into VBA, using several this Windows API functions :
– FindWindow : to retreive the HWND handle of my userform
– CreateWindowEx : to create a ListView
– SendMessage : to change some extend styles, to insert columns, to insert items and subitems
A just have two “little” problems :
– the ListView controls seems frozen : for example, scroll bars or selecting items doesn’t work.
– I don’t know how to get events from the ListView.
Is It possible to change the userform’s WindowProc by a to SetwindoLongPtr(hwndUserForm, GWL_WNDPROC, AddressOf MyWndProc)
to treat the ListView notifications messages and call the original userform’s WindowProc for the other messages ?
Or have you (or somebody else) another suggestion for replacing mscomctl.ocx ?
Thanks in advance.