返回信息流想用MFC做一个图像处理小程序,按下一键后在新弹出的窗口中显示处理后的图片。于是在该按键的消息相应函数中添加了如下代码。
CDialog dlg;
dlg.DoModal();
然后就是显示处理后的图片。
但是程序运行时,只要一按该键就会死掉,出现程序中止的问题,请教一下这是怎么回事??如何才能正确地弹出新窗口并显示图片??
谢谢啦~~~
这是一条镜像帖。来源:北邮人论坛 / cpp / #45808同步于 2010/11/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于VC++MFC中弹出新窗口的问题求教
may0324
2010/11/7镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 may0324 的大作中提到: 】
: 想用MFC做一个图像处理小程序,按下一键后在新弹出的窗口中显示处理后的图片。于是在该按键的消息相应函数中添加了如下代码。
: CDialog dlg;
: dlg.DoModal();
: ...................
先不要管显示图片的问题,看看能不能弹出一个空的窗口,好确定问题出在哪儿
贴代码
【 在 may0324 的大作中提到: 】
: 想用MFC做一个图像处理小程序,按下一键后在新弹出的窗口中显示处理后的图片。于是在该按键的消息相应函数中添加了如下代码。
: CDialog dlg;
: dlg.DoModal();
: ...................
【 在 may0324 的大作中提到: 】
: 想用MFC做一个图像处理小程序,按下一键后在新弹出的窗口中显示处理后的图片。于是在该按键的消息相应函数中添加了如下代码。
: CDialog dlg;
: dlg.DoModal();
: ...................
first:在资源里添加一个对话框资源,在其上添加一些控件(满足你的需要即可),然后针对这个这个对话框定义一个对话框类 如CMyDlg
second:想弹出这个模态对话框的时候,使用一下两条语句
CMyDlg dlg;
dlg.DoModal();
就OK了
你使用的CDialog dlg中 CDialog是标准的MFC基类 还没有关联到某个资源对话框上,所以定义一个对话框时可能会出现一些问题
【 在 yangshi980 的大作中提到: 】
: 贴代码
按键的消息响应函数:
void CShowBitmapView::On32771()
{
CDialog dlg;
dlg.DoModal();
CShowBitmapDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
CDC *pDC=GetDC();
if (0 == extname.Compare(_T("bmp")))
{
ProcessBitmap(pDC,strPicPath);
}
else
{
if (0 == extname.Compare(_T("jpg"))||0 == extname.Compare(_T("jpeg"))||0 == extname.Compare(_T("gif")))
{
//ShowJpgGif(pDC,strPicPath,1,1);
ProcessPic(pDC,strPicPath);
}
}
}
这里面主要是识别图像格式,以调用对应的处理函数。在不加那两句之前,编译是可以通过的,而且可以产生处理后的图片,只是在原来的窗口出现,并且覆盖了原图。所以现在想让图片在新窗口出现,但会出现问题。
【 在 zengcccc 的大作中提到: 】
: first:在资源里添加一个对话框资源,在其上添加一些控件(满足你的需要即可),然后针对这个这个对话框定义一个对话框类 如CMyDlg
: second:想弹出这个模态对话框的时候,使用一下两条语句
: CMyDlg dlg;
: ...................
照你的方法可以弹出对话框了,不过弹出后关掉对话框后才在原窗口显示处理后的图片。。。是不是要创建一个跟窗口有关的类才行??
【 在 may0324 的大作中提到: 】
:
: 【 在 zengcccc 的大作中提到: 】
: : first:在资源里添加一个对话框资源,在其上添加一些控件(满足你的需要即可),然后针对这个这个对话框定义一个对话框类 如CMyDlg
: ...................
你要在弹出的对话框里 显示处理的图片 还是在view的客户区显示处理的界面
通过你需要弹出对话框可以判断你应该是想在弹出的对话框里显示图片
那你可以在对话框模板里添加一个picture 控件 然后在CMyDlg中对图片进行操作
【 在 may0324 的大作中提到: 】
: 照你的方法可以弹出对话框了,不过弹出后关掉对话框后才在原窗口显示处理后的图片。。。是不是要创建一个跟窗口有关的类才行??
正解,程序会定在domodal()处
建立非模态对话框或者先刷新View内的图片在调用domodel()
【 在 may0324 的大作中提到: 】
: 想用MFC做一个图像处理小程序,按下一键后在新弹出的窗口中显示处理后的图片。于是在该按键的消息相应函数中添加了如下代码。
: CDialog dlg;
: dlg.DoModal();
: ...................