如何在picturecontrol上动态画图

来源:互联网 发布:高清网络解码器 编辑:程序博客网 时间:2024/05/29 04:48
BOOL CCommentDlg::InitCloseBitmap(){if( m_bmp.m_hObject != NULL )//判断m_bmp.DeleteObject();/////////载入图片 CBitmap cbitmap;cbitmap.LoadBitmap(MAKEINTRESOURCE(IDB_BITMAP_CLOSE_COMMENT_DLG));HBITMAP hbmp = (HBITMAP)cbitmap.GetSafeHandle();cbitmap.Detach();if( hbmp == NULL ) return FALSE;///////////////////////该断程序用来取得加载的BMP的信息////////////////////////m_bmp.Attach( hbmp );// DIBSECTION ds;// BITMAPINFOHEADER &bminfo = ds.dsBmih; BITMAP bitmap ;m_bmp.GetObject( sizeof(bitmap), &bitmap );int cx=bitmap.bmWidth;   //得到图像宽度int cy=bitmap.bmHeight; //得到图像高度CRect rect;GetDlgItem(IDC_STATIC_TOOL)->GetWindowRect(&rect);this->ScreenToClient(&rect);GetDlgItem(IDC_STATIC_TOOL)->MoveWindow(rect.left,rect.top,cx,cy,true);//调整大小return TRUE;   // return TRUE unless you set the focus to a control} void CCommentDlg::PaintCloseBitmap(){
CDC &dc = *(GetDlgItem(IDC_STATIC_TOOL)->GetDC());CRect rtPicWin;GetDlgItem(IDC_STATIC_TOOL)->GetWindowRect(rtPicWin);this->ScreenToClient( &rtPicWin);CRect rcclient;GetDlgItem(IDC_STATIC_TOOL)->GetClientRect(&rcclient);CBrush brush;brush.CreatePatternBrush(&m_bmp);dc.FillRect(rcclient, &brush);    brush.DeleteObject(); 

}
关键是获取picture control的dc
	
				
		
原创粉丝点击