请问如果使用API函数向已知句柄的LISTVIEW的某一个选择项发送鼠标双击事件好急,找这个问题都找了好多天了
望大侠们指点一二,小弟感激不尽
望大侠们指点一二,小弟感激不尽
解决方案 »
- 百度搜索跳到搜狗 原理
- 求助存储图片的问题,在线等待中...
- winsock怎么使用代理下载文件?
- 我的程序中调用加密的ACCESS数据库,出错,我在专家网上查了一下,短了驱动程序MSAES110.DLL、MASAJT110.DLL、VBDB300.DLL,在我的机子中
- .uID = 1& 与.uID = 1 有何区别???,这样表示是什么意思???
- 请高手支招!!大家看看这样的数据库如何调用??
- 有这样的控件吗
- 谁编过关于 “液压回路模拟仿真” 方面的软件?
- msinet.ocx怎用?
- 在VB中如何做象网络蚂蚁中的小拖动窗口?
- 关于文件读写的小问题
- 谁能给我发一个 信息网的策划书作为参考谢谢
2 将选定项设置为最顶端的项目
3 直接发送双击模拟消息, 2次mousedown,mouseup或者 dbclick, 此时选定项位置就比较容易知道了,比如就在5,5的位置
所以你需要先得到这个ListView的父窗体句柄,然后用SendMassage向其发送WM_NOTIFY消息,wParam是这个ListView的ID(这个ID可以在知道ListView句柄的基础上用GetDlgCtrlID获得),lParam是一个NMHDR结构地址,需要把它的code成员设置为NM_DBLCLK。其余可以参考MSDN。
这些参数是什么啊
具体怎么实现啊
void CTestDlg::DBClick()
{
// 设置最后一行高亮显示
int nCount = m_List1.GetItemCount();
if(nCount<0)
return; m_List1.SetFocus();
m_List1.SetItemState(nCount-1, LVIS_SELECTED, LVIS_SELECTED);
m_List1.EnsureVisible(nCount-1,FALSE); // 模拟CListCtrl双击消息
NMHDR g_thdr;
HWND g_hWnd;
GetDlgItem(IDC_LIST1,&g_hWnd);
g_thdr.code = NM_DBLCLK;
g_thdr.hwndFrom = g_hWnd;
g_thdr.idFrom = IDC_LIST1;
::SendMessage(m_hWnd, WM_NOTIFY, IDC_LIST1, (LPARAM)&g_thdr);
}