- private void SubClasserCallBack(object sender,CallBackArgs Args)
- {
- //System.Diagnostics.Debug.Print(Args.m.Msg.ToString());
- //Console.WriteLine(Args.m.HWnd.ToString());
- const int WM_CONTEXTMENU = 0x7B;
-
- switch (Args.m.Msg)
- {
- case WM_CONTEXTMENU: //interception du click droit
- HD_HITTESTINFO HTI = new HD_HITTESTINFO() ;
-
- const int LVM_FIRST = 0x1000;
- const int LVM_GETHEADER = (LVM_FIRST + 31);
-
- const int HDM_FIRST = 0x1200;
- const int HDM_HITTEST = (HDM_FIRST + 6);
-
- const int HHT_ONHEADER = 0x2;
- const int HHT_ONDIVIDER = 0x4;
-
- int hHeader = 0;
-
- if (listView1.View == View.Details)
- {
- hHeader = SendMessage(listView1.Handle, LVM_GETHEADER, 0, IntPtr.Zero);
- }
-
- if (hHeader > 0)
- {
- HTI.flags = HHT_ONHEADER | HHT_ONDIVIDER;
- HTI.pt.X = listView1.PointToClient(System.Windows.Forms.Cursor.Position).X;
- HTI.pt.Y = listView1.PointToClient(System.Windows.Forms.Cursor.Position).Y;
-
- SendMessage(hHeader, HDM_HITTEST, 0,ref HTI);
- }
-
- //localisation du click
- if ((hHeader>0) && (HTI.iItem > -1))
- {
- //click sur header
- MessageBox.Show("Header");
- }
- else if (listView1.SelectedItems.Count == 0)
- {
- //click sur un subitem
- MessageBox.Show("subitem");
- }
- else if (listView1.SelectedItems.Count >= 1)
- {
- //click sur un item
- MessageBox.Show("item");
-
- }
- break;
- }
- }
private void SubClasserCallBack(object sender,CallBackArgs Args)
{
//System.Diagnostics.Debug.Print(Args.m.Msg.ToString());
//Console.WriteLine(Args.m.HWnd.ToString());
const int WM_CONTEXTMENU = 0x7B;
switch (Args.m.Msg)
{
case WM_CONTEXTMENU: //interception du click droit
HD_HITTESTINFO HTI = new HD_HITTESTINFO() ;
const int LVM_FIRST = 0x1000;
const int LVM_GETHEADER = (LVM_FIRST + 31);
const int HDM_FIRST = 0x1200;
const int HDM_HITTEST = (HDM_FIRST + 6);
const int HHT_ONHEADER = 0x2;
const int HHT_ONDIVIDER = 0x4;
int hHeader = 0;
if (listView1.View == View.Details)
{
hHeader = SendMessage(listView1.Handle, LVM_GETHEADER, 0, IntPtr.Zero);
}
if (hHeader > 0)
{
HTI.flags = HHT_ONHEADER | HHT_ONDIVIDER;
HTI.pt.X = listView1.PointToClient(System.Windows.Forms.Cursor.Position).X;
HTI.pt.Y = listView1.PointToClient(System.Windows.Forms.Cursor.Position).Y;
SendMessage(hHeader, HDM_HITTEST, 0,ref HTI);
}
//localisation du click
if ((hHeader>0) && (HTI.iItem > -1))
{
//click sur header
MessageBox.Show("Header");
}
else if (listView1.SelectedItems.Count == 0)
{
//click sur un subitem
MessageBox.Show("subitem");
}
else if (listView1.SelectedItems.Count >= 1)
{
//click sur un item
MessageBox.Show("item");
}
break;
}
}