我做了2个对话框,1个上面有好几个按钮,按不同的按钮在第2个对话框上显示不同的图片,我是在第2个对话框的OPAINT里画的图片.但我现在显示的时候我点击按钮几次后以前的图片都没有消除,每次按按钮都会先把以前显示的图片闪一遍然后才显示出要显示的图片,这是什么原因呢?
解决方案 »
- 关于MFC使用多语言的问题
- 求救啊,我打印dialog里的flexgrid表格啊??
- 怎样将从串口接收过来的数据进行格式转换
- 用ATL实现ado访问数据库的COM组件的一个问题
- Windows 核心编程源代码
- 急问!在线等!在基于CFormView的多文档界面中,点击应用程序子窗口右上角"关闭"按钮时遇到的问题.
- 关于ShellExecute函数地几个问题~送分多多~~~
- 如何在程序中检测到拔出网线这一事件?在线等,急
- 使用CFileDialog怎么总出错?
- PIII序列号
- 紧急求助,怎么才能让activex打包时 inf文件的DestDir 指定到自定义的路径
- vc下如何改变文本框的大小和边框颜色?
有Object没有DeleteObject?
if(e==1) {
CBitmap m_bmp;
CDC mem;
mem.CreateCompatibleDC(&dc);
m_bmp.LoadBitmap(IDB_BITMAP59); //背面
m_bmp.GetBitmap(&bm);
CBitmap* pOld=(CBitmap*)mem.SelectObject(&m_bmp);
dc.StretchBlt(20,47,225,408,&mem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}
然后在另一个对话框里的BUTTON里加的
dlg.e=1;
dlg.Create(IDD_DIALOG1,this);
{
CPaintDC dc(this);
CBitmap bmp;
Bitmap bm;
switch(e)
{
case 1: bmp.LoadBitmap(IDB_BITMAP59); break;
case 2: bmp.LoadBitmap(IDB_BITMAP60); break
//....
}
CDC mem;
mem.CreateCompatibleDC(&dc);
m_bmp.GetBitmap(&bm);
CBitmap* pOld=(CBitmap*)mem.SelectObject(&m_bmp);
dc.StretchBlt(20,47,225,408,&mem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
mem.SelectObject(pOld);
}如果不要求在第2个对话框不退出的情况下换图片,则将CBitmap m_bmp变成全局,把 switch(e)
{
case 1: bmp.LoadBitmap(IDB_BITMAP59); break;
case 2: bmp.LoadBitmap(IDB_BITMAP60); break
//....
}
放进OnInitDialog