- UID
- 9249
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-8-30
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
//获得NO.1提供的捕捉AutoCad中鼠标移动的实时坐标(WCS)的核心代码后,
//我进行充分实践有如下问题:显示结果的X和Y坐标值与AutoCAD状态行显示
//的稍有不同,整数部分相同,小数部分不同。是否是我的程序中acutPrintf()
//函数与AutoCAD状态行显示不同步造成的?还是按鼠标的微动造成的。请NO.1
//和各位“大虾”帮忙分析一下。
//下面是AutoCAD中捕捉鼠标左键按下的WCS坐标的主要代码,后面是程序运行的
//部分结果。
void movemouse(const MSG* pMsg)
{
switch(pMsg->message ){
case WM_LBUTTONDOWN:
{
acedDwgPoint cpt ={ 0 , 0, 0 } ;
CPoint cPnt (pMsg->lParam) ;
acedCoordFromPixelToWorld (cPnt, cpt) ; //象素点变WCS
ads_point pt ={ cpt[X], cpt[Y], 0 } ;
acutPrintf("x=%f,y=%f\n",pt[X],pt[Y]); //显示坐标
}
break;
case WM_KEYDOWN:
acedRemoveWatchWinMsg(movemouse); //按任意键退出消息监视钩子。
default:
break;
}
}
//
void addhookfn()
{
acedRegisterWatchWinMsg(movemouse);
}
//程序运行结果
x=224.688605,y=126.627907
x=225.264730,y=127.203489
x=225.264730,y=129.505814
x=225.840854,y=130.081396
x=225.840854,y=130.656977
x=225.840854,y=131.232558
x=225.840854,y=131.808140
x=225.840854,y=132.383721 |
|