最近学习VC,编译器用VS2010,使用CFileDialog打开一个对话框回来后主窗口成了灰色,菜单和工具栏可以用,但是怎么点都是灰色,只有改变大小后颜色才变过来,请教各位有没有碰到过这种情况?该怎么解决?
代码如下:
CString strFileName=L"";
WCHAR szFileters[]=L"(*.jpg)|*.jpg|(*.bmp)|*.bmp|ALL files (*.*)|*.*||";
CFileDialog opendlg(TRUE, L"jpg", L"*.jpg",OFN_OVERWRITEPROMPT,szFileters,this); if(opendlg.DoModal()==IDOK)
{
strFileName=opendlg.GetPathName();
if(strFileName==L"")
return ;
else
{
iconPath=typeCast.CString2string(strFileName);
//drawPicture(iconPath);
return;
}
}
代码如下:
CString strFileName=L"";
WCHAR szFileters[]=L"(*.jpg)|*.jpg|(*.bmp)|*.bmp|ALL files (*.*)|*.*||";
CFileDialog opendlg(TRUE, L"jpg", L"*.jpg",OFN_OVERWRITEPROMPT,szFileters,this); if(opendlg.DoModal()==IDOK)
{
strFileName=opendlg.GetPathName();
if(strFileName==L"")
return ;
else
{
iconPath=typeCast.CString2string(strFileName);
//drawPicture(iconPath);
return;
}
}
OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CString strFileName=L"";
WCHAR szFileters[]=L"(*.jpg)|*.jpg|(*.bmp)|*.bmp|ALL files (*.*)|*.*||";
CFileDialog opendlg(TRUE, L"jpg", L"*.jpg",OFN_OVERWRITEPROMPT,szFileters,this); if(opendlg.DoModal()==IDOK)
{
strFileName=opendlg.GetPathName();
if(strFileName==L"")
return ;
else
{
iconPath=typeCast.CString2string(strFileName);
//drawPicture(iconPath);
return;
}
}
//Invalidate();
return;
}
这里
CFileDialog opendlg(TRUE, L"jpg", L"*.jpg",OFN_OVERWRITEPROMPT,szFileters,this);
改成
CFileDialog opendlg(TRUE, L"jpg", L"*.jpg",OFN_OVERWRITEPROMPT,szFileters,NULL);
试试