看下面这段代码,为什么没有我预期的效果呢?
void CMainWindow::OnPaint ()
{
CPaintDC dc (this);
CRect rect;
GetClientRect (&rect); CDC dcMem;
dcMem.CreateCompatibleDC (&dc);
//dcMem.SetMapMode (MM_LOENGLISH);
dcMem.SetTextAlign (TA_CENTER | TA_BOTTOM);
dcMem.SetBkMode (TRANSPARENT); CBitmap bitmap;
bitmap.CreateCompatibleBitmap (&dc, 1000, 1000);
CBitmap* pOldBitmap = dcMem.SelectObject (&bitmap); CPen pen (PS_SOLID, 0, RGB (192, 192, 192));
CPen* pOldPen = dcMem.SelectObject (&pen);
for (int i=125; i<1300; i+=25) {
dcMem.MoveTo (i, -192);
dcMem.LineTo (i, -200);
}
//
dcMem.SelectObject (pOldPen);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,rect.Width(),rect.Height(),SRCCOPY);
dcMem.SelectObject (pOldBitmap);
}结果是屏幕全黑!为什么呢,画的线哪里去了?
我的意图是要先在内存中画完的
大虾快来帮我啊
void CMainWindow::OnPaint ()
{
CPaintDC dc (this);
CRect rect;
GetClientRect (&rect); CDC dcMem;
dcMem.CreateCompatibleDC (&dc);
//dcMem.SetMapMode (MM_LOENGLISH);
dcMem.SetTextAlign (TA_CENTER | TA_BOTTOM);
dcMem.SetBkMode (TRANSPARENT); CBitmap bitmap;
bitmap.CreateCompatibleBitmap (&dc, 1000, 1000);
CBitmap* pOldBitmap = dcMem.SelectObject (&bitmap); CPen pen (PS_SOLID, 0, RGB (192, 192, 192));
CPen* pOldPen = dcMem.SelectObject (&pen);
for (int i=125; i<1300; i+=25) {
dcMem.MoveTo (i, -192);
dcMem.LineTo (i, -200);
}
//
dcMem.SelectObject (pOldPen);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,rect.Width(),rect.Height(),SRCCOPY);
dcMem.SelectObject (pOldBitmap);
}结果是屏幕全黑!为什么呢,画的线哪里去了?
我的意图是要先在内存中画完的
大虾快来帮我啊
dcMem.LineTo (i, -200);
怎么是负的`?????抱成192,200看看
--
用.BitBlt试试