我在MFC的多文档视图中给主界面加载了一个位图,运行的时候显示位图,但是我最小化后再最大化的时候位图就没了,我得晃动晃动才能再出现位图。怎么解决啊?怎么能在最小化后再最大化的时候依然显示位图。
解决方案 »
- vc sdk里面MessageBox的问题
- 关于 win32 API
- listctrl怎样显示双层表头?
- 问大家一个比较难得问题!!!分不够再加,请高手进来看看!!!!
- 如何结束一个进程?如winamp
- 怎样在com 服务器里面让某些数据只初始化一次
- 请教怎么改写应用程序的标题栏。^0^(可以再加)
- 请问:显示出来的grid一直不停的闪,如何消除?
- 我用bcgbar,我得toolbar是CBCGToolBar,程序第一次运行之后,我在向toolbar中添加新的button,在运行时都不出现,请问怎么处理?
- 提供线索也有分!大送分,呵呵……可惜最多只能给300
- 今天学长给了个程序,要求是点到程序上的按钮,实在是没思路,求大牛指教
- 求教LoadString的含义、
{
//CPaintDC dc(this); // device context for painting
CDC dc, memdc;
dc.m_hDC=::GetDC(this->m_hWndMDIClient);
CRect rect;
CBitmap bitmap;
BITMAP szbitmap;
bitmap.LoadBitmap(IDB_MAP);
bitmap.GetObject(sizeof(BITMAP),&szbitmap);
CSize size(szbitmap.bmWidth,szbitmap.bmHeight);
memdc.CreateCompatibleDC(&dc);
CBitmap *oldbitmap=memdc.SelectObject(&bitmap);
GetClientRect(&rect);
StretchBlt(dc.m_hDC,0,0,rect.Width(),rect.Height(),
memdc.m_hDC,0,0,size.cx,size.cy,SRCCOPY);
memdc.SelectObject(oldbitmap);
memdc.DeleteDC();
dc.DeleteDC();
CMDIFrameWnd::OnPaint();
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CMDIFrameWndEx::OnPaint()
}
这是OnPaint中的代码,是在mainfrm里的。
{
//CPaintDC dc(this); // device context for painting
CDC dc, memdc;
dc.m_hDC=::GetDC(this->m_hWndMDIClient);
CRect rect;
CBitmap bitmap;
BITMAP szbitmap;
bitmap.LoadBitmap(IDB_MAP);
bitmap.GetObject(sizeof(BITMAP),&szbitmap);
CSize size(szbitmap.bmWidth,szbitmap.bmHeight);
memdc.CreateCompatibleDC(&dc);
CBitmap *oldbitmap=memdc.SelectObject(&bitmap);
GetClientRect(&rect);
StretchBlt(dc.m_hDC,0,0,rect.Width(),rect.Height(),
memdc.m_hDC,0,0,size.cx,size.cy,SRCCOPY);
memdc.SelectObject(oldbitmap);
memdc.DeleteDC();
dc.DeleteDC();
CMDIFrameWnd::OnPaint();
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CMDIFrameWndEx::OnPaint()
}
这是OnPaint中的代码,是在mainfrm里的。
CMainFrame中的大块灰色不是CMainFrame自己本身,而是CMainFrame包含的一个客户窗口MDIClient,客户窗口覆盖了View窗口能显示的区域,你又不能重载操作客户窗口MDIClient