用CxImage::Draw可以方便地在windows窗體上畫圖,其函數原型如下:
void Draw(HDC hdc, long x=0, long y=0, long cx = -1, long cy = -1, RECT* pClipRect = 0, bool bSmooth = false)
hdc:HDC,窗體或者控件的繪圖上下文句柄,在MFC的OnPaint函數中為CPaintDC dc(this),dc.m_hDc,在OnEraseBkgnd(CDC *pDC)中為pDC.m_hDC。
x,y,cx,cy 將內存中的圖片定位到控件上。x,y是相對於控件的坐標,即顯示部分相對於控件的偏移量。如果只想顯示圖片的中間一小部分,則可以將此值設置為負。cx,cy是顯示區域的寬、高。整個圖片將會被放縮到這個區域上。若想放大、或縮小顯示圖片,只需要確定這兩個參數即可,並且cx,cy得與原圖的比例一樣,這樣圖片才不會長寬變形
pClipRect是控件的裁剪區間,設置大了不會有影響,設置小了會減少顯示區間,不能通過這個參數來縮放或偏移顯示,只會生硬地裁剪。
bSmooth指定在顯示時是否優化顯示。