Здравствуйте, Винградцы. Имеется классическая проблема, помогите решить, пожалуйста. В отдельной процедуре - SetLine(), в создаю BITMAP присоединяю к нему контекст и рисую, вот код:
| Код | hmf=GetMetaFile(_T("C:\\1.WMF")); hBitmap=CreateBitmap(100,100,1,24, NULL); HBITMAP hbmOld=(HBITMAP)SelectObject(hDCmem, hBitmap); MoveToEx(hDCmem,0,0,0); LineTo(hDCmem,1000,1000);
|
затем в обработчике отрисовки окна написал:
| Код |
void CDlgPrint::OnPaint() { CPaintDC dc(this); HDC hDC=dc.m_hDC; FillRect(hDC,&pMetaArr->rSize,0); SetMapMode(hDC,MM_ISOTROPIC); //SetWindowExtEx(hDCmem,pMetaArr->rSize.right,pMetaArr->rSize.bottom,0);
SetViewportExtEx(hDC,pMetaArr->rSize.right*plToolBar->iPercent/2000, \ pMetaArr->rSize.bottom*plToolBar->iPercent/2000,0); SetViewportOrgEx(hDC,-pHScrool->GetScrollPos(),-pVScrool->GetScrollPos(),0); BOOL b=BitBlt(dc.m_hDC,dc.m_ps.rcPaint.left,dc.m_ps.rcPaint.top,dc.m_ps.rcPaint.right,dc.m_ps.rcPaint.bottom,hDCmem, \ dc.m_ps.rcPaint.left,dc.m_ps.rcPaint.top,SRCCOPY); if(b==FALSE) { TCHAR *pszTmp=new TCHAR[256]; _GetLastErr(pszTmp,256); delete pszTmp; } //PlayMetaFile(hDC,hmf); }
|
В итоге линию, которую я нарисовал я невижу. что я опять не так делаю |