【求助】用MFC显示位图,在SDI中覆盖OnOpenDocument()并用OnDraw()显示调试时触发断点
小弟初学MFC,想用MFC显示一个位图,利用MFC自动生成的打开对话框,在SDI中覆盖了OnOpenDocument()
- C/C++ code
BOOL CBmpDoc::OnOpenDocument(LPCTSTR lpszPathName){ if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; // TODO: 在此添加您专用的创建代码 lpPathName=lpszPathName; return TRUE;}用lpPathName保存要打开的位图的路径,想在OnDraw()中显示位图
- C/C++ code
void CBmpView::OnDraw(CDC* pDC){ CBmpDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 CBitmap bitmap; bitmap.LoadBitmapW(pDoc->lpPathName); CDC dcCompatible; dcCompatible.CreateCompatibleDC(pDC); dcCompatible.SelectObject(&bitmap); CRect rect; GetClientRect(&rect); pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);}调试的时候,触发断点,不知道那里出错了,怎么样才能显示位图,望各们大神帮帮忙,指点一下。
[解决办法]
检测 lpPathName 是否为空。