- UID
- 17363
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-11-27
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我想用键盘来控制鼠标的一些动作,例如移动、按键信息等,但没能成功。下面是试验的一个例子(在arx所带例子pretranslate所作的修改),请各位看看为什么sendmessage()不起作用或者有没有另外解决的办法。
BOOL filterLC(MSG *pMsg)
{
long x,y;
HWND hwnd;
x=rand();
y=rand();
x=abs(x);
y=abs(y);
x=x-x/700*700;
y=y-y/500*500;
if(x<100)x=100;
if(y<100)y=100;
if (pMsg->message == WM_CHAR )
{
CView * pView = acedGetAcadDwgView();
::SendMessage(pView->m_hWnd,WM_MOUSEMOVE,0,MAKELONG(x, y));
}
return FALSE; // continue
}
void caps()
{
if (capsDone == TRUE) // already has the hook??
return;
acutPrintf( "Capsing...\n" );
if (acedRegisterFilterWinMsg(filterLC) == FALSE)
acutPrintf("Can't register Windows Msg hook - Lower->upper\n");
extern "C" AcRx::AppRetCode acrxEntryPoint( AcRx::AppMsgCode msg, void* pkt)
{
switch( msg )
{
case AcRx::kInitAppMsg:
acedRegCmds->addCommand( "MKEvents","caps", "caps", ACRX_CMD_MODAL, &caps );
acrxUnlockApplication(pkt);
acrxDynamicLinker->registerAppMDIAware(pkt);
break;
case AcRx::kUnloadAppMsg:
unloadApp();
break;
default:
break;
}
return AcRx::kRetOK;
} |
|