两年没写程序了,重新拿起来手都生了,今天凌晨完成了。谢谢这里的朋友帮助,散分

yubintj 2003-10-26 05:25:41
作了一个触摸屏的程序,现将鼠标拖拽模拟滚轮的程序贴出来,请大家指正。
钩子程序MouseHook.cpp
//---------------------------------------------------------------------------
#pragma option -zRShareSEG // 改变缺省数据段名
#pragma option -zTShareCLASS // 改变缺省数据类名
#include "windows.h"
HINSTANCE hHook=NULL; //钩子句柄
long start=0,end=0; //记录鼠标拖动的位置
BOOL mark=false; //鼠标是否拖动中
#pragma hdrstop
#include <vcl.h>
#include <windows.h>
#pragma argsused


#pragma data_seg(“SharedVar")

#pragma data_seg()


//DLL输出的勾子函数
extern "C" __declspec(dllexport)
LRESULT CALLBACK MouseHookProc(
int nCode,
WPARAM wParam, //虚键代码
LPARAM lParam // 击键消息的信息
)
{
short nState;
TMouseHookStruct *MouseHookStruct;
if (wParam==WM_LBUTTONDOWN) //鼠标左键按下开始即鼠标位置
{
mark=true; //鼠标开始拖动
MouseHookStruct=(TMouseHookStruct *)lParam;
start=MouseHookStruct->pt.y; //记录鼠标拖动开始位置
}else if (wParam==WM_LBUTTONUP)
{
mark=false;
MouseHookStruct=(TMouseHookStruct *)lParam;
end=MouseHookStruct->pt.y;
long pos;
pos=end-start;
start=0;
end=0;
if (pos>40){
SendMessage(MouseHookStruct->hwnd,WM_KEYDOWN,VK_DOWN,0);
SendMessage(MouseHookStruct->hwnd,WM_KEYUP,VK_DOWN,0);
} else if (pos<40)
{
SendMessage(MouseHookStruct->hwnd,WM_KEYDOWN,VK_UP,0);
SendMessage(MouseHookStruct->hwnd,WM_KEYUP,VK_UP,0);
}

}else if (wParam==WM_MOUSEMOVE) {
if (mark==true)
{
MouseHookStruct=(TMouseHookStruct *)lParam;
end=MouseHookStruct->pt.y;
long pos;
pos=end-start;
if (pos>40){
SendMessage(MouseHookStruct->hwnd,WM_KEYDOWN,VK_DOWN,0);
SendMessage(MouseHookStruct->hwnd,WM_KEYUP,VK_DOWN,0);
start=start-40;
}else if(pos<-40){
SendMessage(MouseHookStruct->hwnd,WM_KEYDOWN,VK_UP,0);
SendMessage(MouseHookStruct->hwnd,WM_KEYUP,VK_UP,0);
start=start+40;
}
}
}
return CallNextHookEx(hHook,nCode,wParam,lParam);
}
//-----------------------------------------------------
extern "C" void __declspec(dllexport) EnableMouseHook(void)
{
hHook= SetWindowsHookEx(WH_MOUSE,(HOOKPROC)MouseHookProc,HInstance,0);
}
//----------------------------------------------------------
extern "C" void __declspec(dllexport) DisableMouseHook(void)
{
UnhookWindowsHookEx(hHook);
}

//----------------------------------------------------------

int WINAPI DllEntryPoint(HINSTANCE c, unsigned long reason, void* lpReserved)
{
return 1;
}


//---------------------------------------------------------------------------
MouseHook.def
SEGMENTS ShareSEG CLASS 'ShareCLASS' SHARED
...全文
75 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
penghong 2003-10-28
  • 打赏
  • 举报
回复
真的是太厉害了!!!!
rxiao99 2003-10-28
  • 打赏
  • 举报
回复
support
ljianq 2003-10-28
  • 打赏
  • 举报
回复
重操旧业,好好.
bluedodo 2003-10-27
  • 打赏
  • 举报
回复
牛,向你学习!
huhan3 2003-10-27
  • 打赏
  • 举报
回复
学习
pzoon 2003-10-27
  • 打赏
  • 举报
回复
佩服
hongliqiu 2003-10-27
  • 打赏
  • 举报
回复
接分~~
tigerhohoo 2003-10-27
  • 打赏
  • 举报
回复
加油!!
ccrun.com 2003-10-27
  • 打赏
  • 举报
回复
恭喜皇上。
「已注销」 2003-10-27
  • 打赏
  • 举报
回复
学习.
citytower0 2003-10-27
  • 打赏
  • 举报
回复
牛人……
注意身体,少熬通宵呀!
lennycw 2003-10-27
  • 打赏
  • 举报
回复
鼓掌,恭喜!完毕。
Micowen989 2003-10-27
  • 打赏
  • 举报
回复
UP
kaimy 2003-10-27
  • 打赏
  • 举报
回复
pf
yjy1001 2003-10-27
  • 打赏
  • 举报
回复
恭喜皇上。
有太后了没?!已经卿定了,还是待选?

呵呵—— 怎么我搞起 生活调查来了

学习——接分!


potlee 2003-10-26
  • 打赏
  • 举报
回复
佩服!!
接分!
paapa 2003-10-26
  • 打赏
  • 举报
回复
佩服
dancer12 2003-10-26
  • 打赏
  • 举报
回复
你真厉害啊!佩服!!!!
Bkoklam 2003-10-26
  • 打赏
  • 举报
回复
两年没做程序,既然一夜间能做这么高水平的程序真佩服;看来你对windows消息处理很熟;向你学习,你真实个皇上啊!。
zleia 2003-10-26
  • 打赏
  • 举报
回复
佩服啊!高人!
加载更多回复(19)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧