views:

31

answers:

0

I'm working on UI-driven test automation, and the app under test (AUT) has a UI implemented with C++/MFC/Prof-UIS. My team employs Ranorex to author the tests. Experience has shown that Ranorex does not properly navigate the list controls (instances of CListCtrl) in the AUT. They all have multiple columns, and Ranorex will only retrieve data from the cells of the left-most column in each list.

After researching the matter, I've learned that Ranorex interrogates list controls by sending them the LVM_GETVIEW message. If a list control responds with LV_VIEW_DETAILS, then the list is considered to be a table or a "Tree" and Ranorex will allow navigation to any cell in any column of that list. However, if the response is anything other than LV_VIEW_DETAILS, then Ranorex considers the list control to be a "List" and will only allow navigation to cells in the first (left-most) column. See my post on their forum.

Further investigation shows that at least one list control in the AUT responds to LVM_GETVIEW with LV_VIEW_ICON, but I haven't yet been able to figure out why that is. That particular control is defined to present itself in the LVS_REPORT view/style, not in the LVS_ICON or LVS_SMALLICON styles. And, I have not yet found any application code or config setting that would change this particular control from LVS_REPORT to something else.

Why is this one CListCtrl instance in the AUT responding to LVM_GETVIEW with LV_VIEW_ICON?