调试一个有关对话框的程序,调试通过,当运行时,按OK按钮,就出现 图片,显示AA.exe遇到问题需要关闭,我们对此引起的不便表示抱歉的对话框,代码如下:
CDialog myDialog(IDD_GIVECODE,this);
if(myDialog.DoModal()==IDOK)
{
if (myDialog.m_code.GetLength()!=13)
{
AfxMessageBox("请输入正确的数字!");
return;
}…………
}
请问是什么原因呢?谢谢指教~~~~
CDialog myDialog(IDD_GIVECODE,this);
if(myDialog.DoModal()==IDOK)
{
if (myDialog.m_code.GetLength()!=13)
{
AfxMessageBox("请输入正确的数字!");
return;
}…………
}
请问是什么原因呢?谢谢指教~~~~
解决方案 »
- 为什么在CMainFrame的OnCreate()里面ModifyStyle(WS_CAPTION, 0)不管用?vs2010+win7
- 怎么做是简单的IE事实上也只需要很简单的,因为只需要做一外壳让用户看不出来是在用IE就行
- 怎样实现点击按钮复制和剪切Edit中的内容??
- 列表里的数据如何导入excel中去
- 我做了一个网络通讯的程序,针对不同的用户,须分为四个不同版本,高手请进!
- 续前问:system("C:\\abc.exe<input.txt>output.txt")
- 查找文件问题
- 请教在edit box里换行!!!!(马上给分)
- Dll中的函数名怎么变了?
- 急!请高手帮忙!
- 如何在程序中同时控制两台打印机同时进行打印?
- 如何获得LIST中多选的位置
你上面的代码是在哪里面写的?
直接使用CDialog需要一些技巧
不能这么写,如果想手动创建,可以类似:
CDialog myDialog;
mDialog.Create();//参数你自己自查查MSDN吧
myDialog.Create(IDD_GIVECODE,this);
myDialog.DoModal();
if(myDialog.DoModal()==IDOK)
{
if (myDialog.m_code.GetLength()!=13)
{
AfxMessageBox( "请输入正确的数字! ");
return;
}…………
看看这段代码是在哪个cpp下,要添加CGiveCodeDlg.h 试试看吧
CDialog myDialog ;
myDialog.Create(IDD_GIVECODE,this);
myDialog.DoModal();
这么创建了,但是又出现了新的问题,error C2062: type 'class CDialog' unexpected
这个错误出现的代码是:
class GiveCodeDlg : public CDialog
{
public:
GiveCodeDlg(CWnd* pParent = CDialog); …………
我查了半天也找不出原因,网上也找不到相关的资料,再请指教下,谢谢~~~很急啊!!!
我的主要代码也是以上我给你那个,没有问题,DoModal也调用成功。。void CMainFrame::OnShow()
{
// TODO: Add your command handler code here
CGiveCodeDlg myDialog;
if(myDialog.DoModal()==IDOK)
{
if (myDialog.m_code.GetLength()!=13)
{
AfxMessageBox( "请输入正确的数字! ");
return;
}
}
}如有问题可以找我,我给你看程序
2、 添加一个对话框,ID为IDD_GIVECODE;双击对话框的IDOK按钮Create New Class,选择类名为CGiveCodeDlg,基类为CDialog;
3、 添加一个菜单ID_SHOW,添加单击事件OnShow(),在Mainframe中添加#include “GiveCodeDlg”;
4、 编写代码:
void CMainFrame::OnShow()
{
// TODO: Add your command handler code here
CGiveCodeDlg myDialog;
if(myDialog.DoModal()==IDOK)
{
if (myDialog.m_code.GetLength()!=13)
{
AfxMessageBox( "请输入正确的数字! ");
return;
}
}
}注意:你的对话框默认为popup!,不要为Child!
运行。
这种经历大家都有过的