我在一个对话框的按钮相应函数里面打开一个CFileDialog的打开对话框,在运行过程中发现,打开以后,2个对话框有部分重叠,导致闪烁和CFileDialog对话框的关闭和取消按钮不起作用,打开按钮也不起作用,本来是选择位图文件在对话框上显示的,这样也显示不了,请问这个问题怎么解决?怎么把2个对话框移开而不重叠在一起呢?手动移开上面的CFileDialog对话框时,移不动,并且导致CFileDialog对话框的数量变多,好像进入了一个死循环一样???
郁闷???高手救救我
郁闷???高手救救我
我估计是进入循环了,自己好好找找原因。
void CXXXDlg::OnOpenFile()
{
// TODO: Add your control notification handler code here
char filters[] = "文本文件(*.txt)|*.txt||";
CFileDialog dlg(TRUE, "文本文件", "*.txt", 0, filters);
if(dlg.DoModal() == IDOK)
{
}不会出现问题检查以下其他的吧
void PhotoManege::OnPaint()
{
CPaintDC dc(this); // device context for painting
CDialog::OnPaint();
if(tag==ture)
{
static char BASED_CODE szFilter[]="BMP Files(*.bmp)|*.bmp|All Files(*.*)|*.*||";
CFileDialog dlg(TRUE,"BMP",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);
if(dlg.DoModal()!=IDOK)
return;
CString PathName=dlg.GetPathName();// 得到BMP文件路径 MessageBox(PathName," 文件路径");
tag=false;
}
}
显然是不行的改变你的方式,
在你的tag=false; 之前已经不知道执行了多少次OnPaint了~~所以就出现了重复和死循环的现象