c语言移动坐标,如何实现不移动坐标但是在某个坐标实现点击

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

@森林歌唱家 最后个方法是跨进程读写内存常用方式 这里只对标准listctrl listview有效

LVITEM lvitem, *plvitem;

NMHDR nmhdr,*pnmhdr;

HANDLE hProcess;

DWORD PID;

EnableDebugPrivilege(hProcess);

GetWindowThreadProcessId(g_List1, &PID);

hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,PID);

if (hProcess) {

DWORD dwOldProtect;

plvitem=(LVITEM*)VirtualAllocEx(hProcess,NULL, sizeof(LVITEM),MEM_COMMIT,PAGE_READWRITE);

lvitem.state=LVIS_SELECTED|LVIS_FOCUSED|LVIS_ACTIVATING;

lvitem.stateMask=LVIS_SELECTED;

VirtualProtectEx(hProcess, plvitem, sizeof(LVITEM), PAGE_READWRITE, &dwOldProtect);

WriteProcessMemory(hProcess, plvitem, &lvitem, sizeof(LVITEM), NULL);

VirtualProtectEx(hProcess, plvitem, sizeof(LVITEM), dwOldProtect, &dwOldProtect);

::SendMessage(g_List1,LVM_SETITEMSTATE,(WPARAM)0,(LPARAM)plvitem);

pnmhdr = (NMHDR*)VirtualAllocEx(hProcess,NULL, sizeof(NMHDR),MEM_COMMIT,PAGE_READWRITE);

nmhdr.code = NM_RCLICK;

nmhdr.hwndFrom = g_List1; List控件HWND

nmhdr.idFrom = 0x4B3; List控件ID

VirtualProtectEx(hProcess, pnmhdr, sizeof(NMHDR), PAGE_READWRITE, &dwOldProtect);

WriteProcessMemory(hProcess, pnmhdr, &nmhdr, sizeof(NMHDR), NULL);

VirtualProtectEx(hProcess, pnmhdr, sizeof(NMHDR), dwOldProtect, &dwOldProtect);

::PostMessage(::GetParent(g_List1),WM_NOTIFY,(WPARAM)0x4B3,(LPARAM)pnmhdr);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值