问题说明:
1.我使用ATL创建了一个控件,插入到WORD2000中。初始大小一直是默认的控件大小。
2.同样的控件在WORD2003、WORD2007中都是可以设置大小的。部分相关代码:设置大小的代码://pixels 要设置的最终控件大小
SetCtrlSize(SIZE pixels)
{
SIZE szlMetric;
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);
}
}为了强制设置窗口大小,我使用了API,但结果是有时窗口上面的图像出现大小不同的两个: //移动到正确位置
if(m_hWnd)
{
HWND pwnd = ::GetParent(m_hWnd);
if(pwnd)
{
RECT rect;
POINT pt;
::GetClientRect(m_hWnd,&rect);

pt.x = rect.left;
pt.y = rect.top;
::ClientToScreen(m_hWnd,&pt);
::ScreenToClient(pwnd,&pt); ::MoveWindow(m_hWnd,pt.x,pt.y,szlPixels.cx,szlPixels.cy,TRUE);
}
}