CListCtrl drag and drop, detecting which column is being dra
Luke Stephens -- luker@tfs.net
Monday, September 30, 1996
Environment: VC++ 4.2, Win95, NT 3.51, NT 4.0
How can you determine which column is being dragged in a CListCtrl?
I'm using the control in report view and I wan't to be able to drag and
drop from one column to another within the same or different rows.
Any ideas?
Luke Stephens
luker@tfs.net
Luke Stephens -- luker@tfs.net
Wednesday, October 02, 1996
FYI: I solved my own problem. After searching the Commctrl.h header
file (VC 4.2), I discovered that a new item was added to the
LV_HITTESTTINFO
structure. Here's the new structure:
typedef struct tagLVHITTESTINFO
{
POINT pt;
UINT flags;
int iItem;
--> int iSubItem; // this is was NOT in win95. valid only for
LVM_SUBITEMHITTEST
} LVHITTESTINFO, FAR* LPLVHITTESTINFO;
It appears that a new undocumented message (LVM_SUBITEMHITTEST) was added
to control, but not implemented in CListCtrl.
So, I used the following code to determine which column was clicked:
LV_HITTESTINFO hit;
GetCursorPos(&hit.pt);
m_List.ScreenToClient(&hit.pt);
::SendMessage(m_List.m_hWnd, LVM_SUBITEMHITTEST, 0, (LPARAM)(LV_HITTESTINFO
FAR*)(&hit));
TRACE2("Item: %d, SubItem: %d\n",hit.iItem,hit.iSubItem);
----------
> From: Luke Stephens
> To: 'mfc-l@netcom.com'
> Subject: CListCtrl drag and drop, detecting which column is being dragged
> Date: Monday, September 30, 1996 6:10 PM
>
> Environment: VC++ 4.2, Win95, NT 3.51, NT 4.0
>
> How can you determine which column is being dragged in a CListCtrl?
> I'm using the control in report view and I wan't to be able to drag and
> drop from one column to another within the same or different rows.
>
> Any ideas?
>
> Luke Stephens
>
> luker@tfs.net
>
| Вернуться в корень Архива
|