ondraw函数如下:
HRESULT OnDraw(ATL_DRAWINFO& di)
{
HMETAFILE hmf;
HBRUSH hBrush ;
HPEN hPen;
HDC hdc,hdcMeta;
hdc=di.hdcDraw;
RECT& rc = *(RECT*)di.prcBounds;
hdcMeta= CreateMetaFile("c:\\Documents and Settings\\meta.wmf") ;
hBrush= (HBRUSH)GetStockObject(NULL_BRUSH);
hPen=(HPEN)GetStockObject(BLACK_PEN);
SelectObject(hdcMeta,hPen);
SelectObject(hdcMeta,hBrush);
Rectangle(hdcMeta, rc.left,rc.top, rc.right,rc.bottom);
MoveToEx (hdcMeta, rc.left,rc.top,NULL);
LineTo(hdcMeta,rc.right,rc.bottom);
MoveToEx(hdcMeta, rc.left,rc.bottom,NULL);
LineTo(hdcMeta,rc.right,rc.top);
hBrush= CreateSolidBrush (RGB (0, 0, 255)) ;
SelectObject (hdcMeta, hBrush) ;
Ellipse (hdcMeta, rc.left+20,rc.top+20, rc.right-20,rc.bottom-20*x);
hmf = CloseMetaFile (hdcMeta) ;
::PlayMetaFile(hdc,hmf) ;
return 0K;
}
现在问题是,控件放到IE里面完全正确,但把保存的图片放到word里面,却出现了一个216*216的白色背景,让需要的主界面显得很小了。还有,如果调整屏幕的分辨率,该图片里面的我的控件部分变大了,但背景部分不变,仍然是216*216。不知道为什么,请各位大人指教。现在课题就要结了,又出现了这个问题,郁闷哪。大侠们救命哪。
HRESULT OnDraw(ATL_DRAWINFO& di)
{
HMETAFILE hmf;
HBRUSH hBrush ;
HPEN hPen;
HDC hdc,hdcMeta;
hdc=di.hdcDraw;
RECT& rc = *(RECT*)di.prcBounds;
hdcMeta= CreateMetaFile("c:\\Documents and Settings\\meta.wmf") ;
hBrush= (HBRUSH)GetStockObject(NULL_BRUSH);
hPen=(HPEN)GetStockObject(BLACK_PEN);
SelectObject(hdcMeta,hPen);
SelectObject(hdcMeta,hBrush);
Rectangle(hdcMeta, rc.left,rc.top, rc.right,rc.bottom);
MoveToEx (hdcMeta, rc.left,rc.top,NULL);
LineTo(hdcMeta,rc.right,rc.bottom);
MoveToEx(hdcMeta, rc.left,rc.bottom,NULL);
LineTo(hdcMeta,rc.right,rc.top);
hBrush= CreateSolidBrush (RGB (0, 0, 255)) ;
SelectObject (hdcMeta, hBrush) ;
Ellipse (hdcMeta, rc.left+20,rc.top+20, rc.right-20,rc.bottom-20*x);
hmf = CloseMetaFile (hdcMeta) ;
::PlayMetaFile(hdc,hmf) ;
return 0K;
}
现在问题是,控件放到IE里面完全正确,但把保存的图片放到word里面,却出现了一个216*216的白色背景,让需要的主界面显得很小了。还有,如果调整屏幕的分辨率,该图片里面的我的控件部分变大了,但背景部分不变,仍然是216*216。不知道为什么,请各位大人指教。现在课题就要结了,又出现了这个问题,郁闷哪。大侠们救命哪。
see http://msdn.microsoft.com/archive/en-us/dnargdi/html/msdn_enhmeta.asp