我看了一些网上文章:他们都说加入对话框资源后,写一个继承对话框类A和一个导出函数f(),在导出函数f
中最前面加语句:AFX_MANAGE_STATE(AfxGetStaticModuleState());然后,A a1; a1.DoModal();
最后在.exe中调用f();就会有对话框显示;
但是,问题来了,如下:
int OnLetter()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
int nRet=0;
CWriteMail wm;//CDialog为基类
nRet=wm.DoModal();
if(nRet==-1)
{
AfxMessageBox("不能调用书写版!");
}
else
{ if(nRet==IDABORT)
{
AfxMessageBox("调用书写版出错!");
}
}
return 1;
}
最后我在.exe中调用int OnLetter():
结果,老得到:"不能调用书写版!"; 为么老是创建不了对话框????
中最前面加语句:AFX_MANAGE_STATE(AfxGetStaticModuleState());然后,A a1; a1.DoModal();
最后在.exe中调用f();就会有对话框显示;
但是,问题来了,如下:
int OnLetter()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
int nRet=0;
CWriteMail wm;//CDialog为基类
nRet=wm.DoModal();
if(nRet==-1)
{
AfxMessageBox("不能调用书写版!");
}
else
{ if(nRet==IDABORT)
{
AfxMessageBox("调用书写版出错!");
}
}
return 1;
}
最后我在.exe中调用int OnLetter():
结果,老得到:"不能调用书写版!"; 为么老是创建不了对话框????
http://community.csdn.net/Expert/topic/3296/3296255.xml?temp=.1253778
CWriteMail:public CDialog 已经声明了(我加入时,按向导形成的CWriteMail类啊)
nRet=wm.DoModal();
if(nRet==-1)
{
AfxMessageBox("不能调用书写版!");
}
这两句呢? nRet==-1也就是:对话框创建不成功,但用getlasterror检查出错代码,得到:"操作成功完成".这太搞笑了吧