|
[code]//函数的声明部分
static BOOL CapsDone = FALSE; //判断是否注册了该命令
BOOL toCaps(MSG *pMsg); //获得消息的函数,就是消息处理函数
void regCaps(); //注册命令
void unregCaps(); //注销命令
///程序实现
void initApp()
{
acedRegCmds->addCommand(_T("MKEvents"),_T("caps"),_T("caps"),ACRX_CMD_MODAL,®Caps);
return;
}
void unloadApp()
{
acedRegCmds->removeGroup(_T("MKEvents"));
if(CapsDone==TRUE)
{
acedRemoveFilterWinMsg(toCaps);
}
// acedRemoveWatchWinMsg(toCaps);
return;
}
//此处获得鼠标在Dwg图纸中的坐标,相当有用,值得珍藏的一段代码
BOOL toCaps(MSG* pMsg)
{
CString sTemp;
long ptx=0,pty=0;
if(pMsg->message == WM_CHAR)
{
ptx=LOWORD(pMsg->lParam);
pty=HIWORD(pMsg->lParam);
CPoint pt(ptx,pty);
acedDwgPoint getPts;
acedCoordFromPixelToWorld(pt,getPts);
sTemp.Format(_T("/nx=%0.3f,y=%0.3f/n"),getPts[0],getPts[1]);
acutPrintf(sTemp);
}
return FALSE;
}
void regCaps()
{
if(CapsDone == TRUE)
return;
acedPrompt(_T("/ncapsing.../n"));
if(acedRegisterFilterWinMsg(toCaps) == FALSE)
// if(acedRegisterWatchWinMsg(toCaps) == FALSE)
{
acedPrompt(_T("/ncant/n"));
}
else
{
CapsDone=TRUE;
}
return;
}
void unregCaps()
{
if(CapsDone == TRUE)
{
acedRemoveFilterWinMsg(toCaps);
// acedRemoveWatchWinMsg(toCaps);
CapsDone = FALSE;
}
return;
}
[/code] |
|