- 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;  
} |   
 
 
 
 |