紧急求助:重画picture控件,应该调用哪个函数,在线等,谢谢。小弟快没有分了,各位大侠帮帮忙呀。
CFormView中有个Picture控件
加载图片后
如果最小化窗口
然后在最大化窗口
控件中的图片就没有了
需要怎样处理呢?
需要在哪个函数中重新调用画图的函数呢?
谢谢
问题点数:10、回复次数:7Top
1 楼laohubinbin(老虎斌斌)回复于 2005-04-03 21:01:25 得分 0
继续求助
谢谢Top
2 楼Mackz(在相互)回复于 2005-04-03 21:52:21 得分 0
你是怎么加载图片的?Top
3 楼Gogogogogoogle(狗哥)回复于 2005-04-03 21:54:20 得分 5
OnPaintTop
4 楼imyourkobe()回复于 2005-04-03 23:38:11 得分 5
就是在OnPaint或OnDraw里调用一下你的绘图函数,你的函数执行一次就不再执行了,
OnPaint和OnDraw是在客户区需要刷新时自动执行的,这样你最小化后再最大化就回重绘Top
5 楼laohubinbin(老虎斌斌)回复于 2005-04-04 10:47:10 得分 0
这是加载及显示图片的函数雏形:
void CDUT_Geography_QueryView::QueryDisplayPicture(LPCTSTR strPictureName)
{
CDib queryed_picture;
if ((queryed_picture.AttachMapFile("xiaohui.bmp",TRUE))==NULL)
{
AfxMessageBox("没有找到该图片");
}
CRect rectShow;
/*CWnd **/pWnd=GetDlgItem(IDC_DETAIL_QUERY_PICTURE);//指定控件的ID
pWnd->GetClientRect(rectShow);
pWnd->ClientToScreen(&rectShow);
CDC* pDC;
pDC=pWnd->GetDC();
queryed_picture.UsePalette( pDC );
//显示
CPoint ptHere;
ptHere.x = 0;
ptHere.y = 0;
CSize szHere;
szHere.cx=rectShow.right- rectShow.left;
szHere.cy=rectShow.bottom-rectShow.top;
queryed_picture.Draw(pDC,ptHere,szHere);
ReleaseDC(pDC);
queryed_picture.Empty();
}
我重载了OnPaint函数,在函数中调用了上面的函数:
void CDUT_Geography_QueryView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
if (m_bHaveQueryed) 《-----判断文件是否打开,一个全局变量
{
QueryDisplayPicture(m_strTmp); 《-----调用函数
}
// Do not call CFormView::OnPaint() for painting messages
}
但是最小化,然后最大化后
Picture控件中的的图片只是闪了一下,然后又没有了
怎么回事呢?
谢谢了
大侠们帮帮我呀
Top
6 楼laohubinbin(老虎斌斌)回复于 2005-04-04 11:14:56 得分 0
顶一下
恳求大家啦
小弟好着急呀Top
7 楼laohubinbin(老虎斌斌)回复于 2005-04-04 12:00:38 得分 0
继续求助
谢谢Top




