电子签章 控件移动问题
我在图章控件的OnDraw函数里面加了::SetWindowPos(m_hWnd,HWND_TOP,0,0,0,0,SWP_NOMOVE); 然后控件就可以移动了。
但是加上这句代码后,我插在word里的控件不能响应消息函数了。应该是句柄的问题吧,怎么处理呢?
[解决办法]
说明两点:
1.位置控制:
移动位置需要通过调用WORD接口,直接移动shape来实现移动公章控件的功能。
直接通过SetWindowPos虽然可以达到移动公章控件的功能,但WORD的机制是将控件放在contan,,,中,所以包含此控件的容器没有移动。再次点击控件时没有点击在容器上(容器还在原位置),消息传不给控件。
2.大小控制:
公章控件的大小需要通过控件本身来实现:
AtlPixelToHiMetric(&pixels,&szlMetric);
SetExtent(DVASPECT_CONTENT, &szlMetric);
if (m_spInPlaceSite != NULL)
{
m_rcPos.right= m_rcPos.left + pixels.cx;
m_rcPos.bottom= m_rcPos.top + pixels.cy;
m_spInPlaceSite->OnPosRectChange(&m_rcPos);
}