社区
进程/线程/DLL
帖子详情
如何实现双击其他程序的listview?
haorenyige
2008-04-28 04:23:40
如何
双击其他程序的listview?
其他程序可能被激活,也可能没有被激活。所以模拟鼠标和键盘的方法好像没有用。
SendMessage(hwnd, WM_KEYDOWN, 0, 0);
SendMessage(hwnd, WM_KEYUP, 0, 0);这样的方式可以实现么?
但是其他程序的listview的item的handle如何得到呢?
...全文
178
13
打赏
收藏
如何实现双击其他程序的listview?
如何 双击其他程序的listview? 其他程序可能被激活,也可能没有被激活。所以模拟鼠标和键盘的方法好像没有用。 SendMessage(hwnd, WM_KEYDOWN, 0, 0); SendMessage(hwnd, WM_KEYUP, 0, 0);这样的方式可以实现么? 但是其他程序的listview的item的handle如何得到呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
haorenyige
2008-04-29
打赏
举报
回复
up
Eleven
2008-04-29
打赏
举报
回复
up
haorenyige
2008-04-29
打赏
举报
回复
有人可以帮帮忙么?
有没有其他的方式?
haorenyige
2008-04-29
打赏
举报
回复
自己解决了。怎么给分。赫赫
谢谢
jimoguilai和VisualEleven
haorenyige
2008-04-28
打赏
举报
回复
在网上找到一段代码,不知道能行不?正在尝试ing.
void CMyTreeCtrl::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CWnd* pParent = GetParent();
// Check if valid parent
ASSERT(pParent);
// Send notification to parent
NMHDR nmhdr;
nmhdr.code = NM_DBLCLK;
nmhdr.hwndFrom = m_hWnd;
nmhdr.idFrom = GetDlgCtrlID();
GetParent();
PostMessage(WM_NOTIFY, (LPARAM)GetDlgCtrlID(), (WPARAM)&nmhdr);
// Don't call the default implementation
//CTreeCtrl::OnLButtonDblClk(nFlags, point);
}
haorenyige
2008-04-28
打赏
举报
回复
我还发现有NM_DBLCLK这个消息。
我的代码
SendMessage(hwnd, LVM_SETITEMSTATE, index, plvitem.ToInt32());
可以执行,可以设置第index个item的状态,
但是通过
SendMessage(hwnd, NM_DBLCLK, index, plvitem.ToInt32());
却不能实现双击的功能。
haorenyige
2008-04-28
打赏
举报
回复
我查到 LVM_SETITEMSTATE相关信息,LVM_SETITEMSTATE可以设置一个item的文字以及状态等等,但是点击的话,NM_CLICK这个东西还是不太会用。
Chivalry
2008-04-28
打赏
举报
回复
NM_,LVN_LVM打头的消息都看一下,看看有没有你需要的,我手头没有csdn
haorenyige
2008-04-28
打赏
举报
回复
你的意思是
SendMessage(hwnd,WM_NM_CLICK,0,0); 这样么?
我现在来尝试一下
Chivalry
2008-04-28
打赏
举报
回复
查msdn,那就发送设置item的消息阿。。。
haorenyige
2008-04-28
打赏
举报
回复
如果是一个button,一个textbox,或者listview,他们是一个控件,他们有他们的handle,我现在可以得到。
但是我本身的意思是点击listview上的一个项目item,通过FindWindowEx应该是得不到一个listview的item的。
Chivalry
2008-04-28
打赏
举报
回复
这是一个类似的代码
让应用程序从IE中获取键入的网址
转自:www.csdn.net
文章正文
前些时候,朋友想做一个小共享软件,软件的主要作用是阻止用户进入某些网站,他的设想是从IE的地址栏中获取键入的网址,如果这个网址非法的话,则不可以进入,代码如下:
HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
if(hwnd)
{
HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("Edit"),NULL);
char sz[255];
::SendMessage(hwnd2,WM_GETTEXT,255,(LPARAM)sz);
AfxMessageBox(sz);
}
结果发现不能得到正确的结果,从SPY上看,类名也全部是正确的,为什么不能得到正确的结果呢?看了他的代码后,我进行了如下改动,就可以得到正确的结果了:
HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
if(hwnd)
{
HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("WorkerW"),NULL);
HWND hwnd3=::FindWindowEx(hwnd2,NULL,_T("ReBarWindow32"),NULL);
HWND hwnd4=::FindWindowEx(hwnd3,NULL,_T("ComboBoxEx32"),NULL);
HWND hwnd5=::FindWindowEx(hwnd4,NULL,_T("ComboBox"),NULL);
HWND hwnd6=::FindWindowEx(hwnd5,NULL,_T("Edit"),NULL);
char sz[255];
::SendMessage(hwnd6,WM_GETTEXT,255,(LPARAM)sz);
AfxMessageBox(sz);
}
}
Chivalry
2008-04-28
打赏
举报
回复
先使用FindWindow获取其它应用程序窗口的句柄
在使用FindWindowEx获取其ListView的句柄
在SendMessage发送NM_CLICK消息
C# winform
ListView
中
实现
可编辑文本或
双击
出现下拉列表框
ListView
中
实现
可编辑文本或
双击
出现下拉列表框 重写
listview
空间,在控件中添加下拉框和文本框
实现
了
listview
中对某一行
双击
弹出对话框进行编辑
实现
了
listview
中对某一行
双击
弹出对话框 对该行数据进行编辑
C#
listview
双击
修改源码4个版本
C#
listview
双击
修改 源码,本人在前人基础上修改了源码,直接可以运行,一共四个版本,第一版是原版,第二版是第一列不改其他随意,第三版自由修改,第四版自由修改代码优化
ListView
实现
可编辑或
双击
出现下拉列表框
在CSDN上得到了很多帮助。看到很多朋友都需要
ListView
实现
可编辑或
双击
出现下拉列表框。所以自己做了一个给大家参考
ListView
复选框只允许
双击
选定的软件源码
ListView
复选框只允许
双击
选定整理了一下本人硬盘里实用的编程资料和源码,全部是VB代码,希望大家能喜欢.
进程/线程/DLL
15,466
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章