对话框调用问题,急! 一定给分!

zhyuanbaron 2005-12-29 06:52:57
我定义了两个对话框,一是主对话框(自己生成的,为TestDialog),另一个是InsertDialog
我在TestDialogDlg.h中做如下定义:

#include "insertDialog.h"
class CTestDialogDlg : public CDialog
{
....
public:
CInsertDialog insertDlg;
}
然后在TestDialogDlg.cpp中的按钮响应函数中添加:

insertDlg->Create(IDD_DIALOG_INSERT);
insertDlg->ShowWindow(SW_SHOW);

但是运行的时候就弹出错误,如果把 InsertDialog insertDlg; 到类外面去定义(还在TestDialogDlg.h中)好了
...全文
194 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhyuanbaron 2005-12-31
  • 打赏
  • 举报
回复
呵呵 问题解决了,重新编译一下就好了,谢谢大家的帮助,这就结贴
zhanghongbo1126 2005-12-31
  • 打赏
  • 举报
回复

不用贴代码!!!
我刚刚试的没有错误呀!!你是不是按一下按钮显示另一个对话框呀!!我刚刚就是这样测试的;没有错误。
class CA():public CDlog
{
Public:
CB b;
}
CA::OnButton()
{
b.Create(IDD_DLOG1);
b.ShowWindow(SW_SHOW);
}
///////////////////////////
class CB():public
{
}
//////////////////////////////////////////////
好用呀! 我只要点击CA上的按钮,就会显示CB的对话框;

是不是我没有理解你的意思呀!!要不你在说清楚一点。
wangxin_ch 2005-12-30
  • 打赏
  • 举报
回复
是不是在类CA初始化时CB就已经初始化了,即已经占用了一部分内存, 所以不可以初始化了
而作为全局变量就设关系!
zhyuanbaron 2005-12-30
  • 打赏
  • 举报
回复
是这样的
Class CA()
{
CB b; // 这样是可以的
}
Class CB()
{
}
但就是有错误,需要把代码贴出来吗?怕贴上有点乱,就没贴,呵呵
zhanghongbo1126 2005-12-30
  • 打赏
  • 举报
回复
是不是这样,你的两个类似这样的:互相包含
class CTestDialogDlg : public CDialog
{
....
public:
CInsertDialog insertDlg; // 定义了CInsertDialog对象 互相包含
}
同时在你的
class CInsertDialog: public CDialog
{
....
public:
CTestDialogDlg insertDlg; // 定义了CTestDialogDlg 对象 互相包含
}

这样的话你两个类的对象就互相包含了,使其无法确定大小,形成了死递归,但定义成指针,就能确定大小,因为指针可能就占4个字节的空间。
如果只包含一个是可以的,不知道你是不是这样的毛病;
Class CA()
{
CB b; // 这样是可以的
}
Class CB()
{
}

或者向你说的,如果互相调用,那可能只能用指针了;

969209pxb 2005-12-30
  • 打赏
  • 举报
回复
先谢谢大家,我试过换成指针,其他地方都不动,好用
但是为什么不用指针就不好使拉?

把 CInsertDialog insertDlg; 放到外面就好使,咋回事阿
--------------------------------------------------------
同问?
Stefine 2005-12-29
  • 打赏
  • 举报
回复
呵呵,创建非模式的,这样应该是可以的啦

像DOMODAL一样,放在CPP响应函数里头,然后只是把DOMODAL换成Create ShowWindow罢了
laofang 2005-12-29
  • 打赏
  • 举报
回复
无模式对话框基础,看看书就行
zhyuanbaron 2005-12-29
  • 打赏
  • 举报
回复
to: forover(天下无吥散dě宴席)
代码我发过去了,谢谢了
zhyuanbaron 2005-12-29
  • 打赏
  • 举报
回复
不好意思,写错了,是

insertDlg.Create(IDD_DIALOG_INSERT);
insertDlg.ShowWindow(SW_SHOW);
kugou123 2005-12-29
  • 打赏
  • 举报
回复
你定义的对象,不能用指针操作符的。
zhyuanbaron 2005-12-29
  • 打赏
  • 举报
回复
毛毛说得那个问题确实存在,呵呵,我原来打算设置bool变量的,这个简单多了,谢谢了

原问题还是不懂
forover 2005-12-29
  • 打赏
  • 举报
回复
光按你上面描述的话是不会有问题的,可能是你代码其他地方的问题,不介意的话把代码发给我帮你看看zhangyxlove(邮箱符号)163.com
zhyuanbaron 2005-12-29
  • 打赏
  • 举报
回复
先谢谢大家,我试过换成指针,其他地方都不动,好用
但是为什么不用指针就不好使拉?

把 CInsertDialog insertDlg; 放到外面就好使,咋回事阿
zhyuanbaron 2005-12-29
  • 打赏
  • 举报
回复
不好意思,写错了,是

insertDlg.Create(IDD_DIALOG_INSERT);
insertDlg.ShowWindow(SW_SHOW);
tianpuf 2005-12-29
  • 打赏
  • 举报
回复
insertDlg.Create(IDD_DIALOG_INSERT,this);这个this不是必要的吧。
我试了一下,没问题呀。
你要不把 CInsertDialog* insertDlg
insertDlg->Create(IDD_DIALOG_INSERT);
insertDlg->ShowWindow(SW_SHOW);
放在一块。
对了是不是你没有new CInsertDialog
应该是
CInsertDialog* insertDlg//放哪里都行
insertdlg=new Cinsertdialog
insertDlg->Create(IDD_DIALOG_INSERT);
insertDlg->ShowWindow(SW_SHOW);

handsomerun 2005-12-29
  • 打赏
  • 举报
回复
insertDlg.Create(IDD_DIALOG_INSERT,this);
insertDlg.ShowWindow(SW_SHOW);

不过注意阿,你如果这样的话,
点了一次这个按钮
下次再点的话
那个insertDlg对象还在,没有被清空,再create的话,就不对了
你可以先判断一下

if(insertDlg.GetSafeHwnd())
{
//已经被创建了,就不用再创建了
insertDlg.ShowWindow(SW_SHOW);

}
else
{
insertDlg.Create(IDD_DIALOG_INSERT,this);
insertDlg.ShowWindow(SW_SHOW);

}
Kudeet 2005-12-29
  • 打赏
  • 举报
回复
我一般的做法:
class CTestDialogDlg : public CDialog
{
....
public:
CInsertDialog *insertDlg;
}
然后在TestDialogDlg.cpp中的按钮响应函数中添加:

insertDlg=new CInsertDialog;
insertDlg->Create(IDD_DIALOG_INSERT,this);//parent window
insertDlg->ShowWindow(SW_SHOW);
newzk 2005-12-29
  • 打赏
  • 举报
回复
不应该是指针吧,楼主写得不够仔细
zhyuanbaron 2005-12-29
  • 打赏
  • 举报
回复
请问这是怎么回事啊?
绝对可以使用,后台完全破解! 一、在修改文件时,如何才能在用dreamweaver 软件打开时文件是可视化的? 方法: 1、首先打开源文件(这时你会看到:"对不起,你没有执行该操作的权限", 等字样,不要请往下做。): 2、切换到代码视图 3、剪切前面一些代码<!--#includefile="char.inc"--> 将这些代码先保存起来待修改完后再加回来原处, 或者先注释掉这段代码,修改好后恢复即可。 4、切换加窗口视图,这时你发现页面可视,修改起来就方便多了。 5、修改完页面后,将刚才剪切掉的代码<!--#includefile="char.inc"--> 加回原处。OK!可以预览了。 二、如何修改超级用户的用户名与密码 与 登录? 系统默认的前台发文用户是admin 密码admin. 1、登录后可在用户管理里修改密码或者在个人资料里修改密码。 但不可以修改默认前台用户的用户名admin。 2、在超级管理里修改超级管理的用户名与密码,但对应前台发文用户admin不可改 (注:必须与前台发文用户对应否则超级管理员无法登录)。 此网站需要两次登陆,第一次登陆的是前台用户,第二次登录的时候是超级用户,登录了两次才可以进行 系统所有的设置,在修改密码的时候用户管理里面修改的只是第一次登录的密码,如果没有在超级用户里面修改此 用户的密码,第2次登陆了的密码还是原来的,不变。 3、增加超级管理员的方法。 a、先增加前台发文普通用户,再将其设为系统用户 b、在超级管理里增加一个超级管理员,对应前台发文用户为刚增加的前台普通用户名。 4、超级管理员登录方法。 a、先登录普通前台发文用户。 b、再登录对应的超级管理员。 三、如何修改版权信息? 1、后台版本信息修改 wygkcn_SystemSave.asp文件 把下面改成自己需要的信息 if DbType="ACCESS" then version="学校网站管理系统Div+Css商业正式版" end if if DbType="MSSQL" then version="学校网站管理系统Div+Css商业正式版" end if if DbType="MYSQL" then version="学校网站管理系统Div+Css商业正式版" 2、其他页面版权调用的是数据库字段,打开数据库找到wygkcn_System 相关的字段,里面有ver 和copyright 等等版权信息,把里面的信息改成自己需要的即可。 四、如何让首页的图片报道的5个幻灯轮显图片出现? 1、进去后台添加5个新闻,并且在新闻里面插入图片,同时设置此条新闻为推荐。也就是至少5个插入了图片的新闻,并且设置为推荐了,才会调用这些新闻的图片出现在新闻报道里面。 五、为什么我的网站栏目修改没有反应,数据都不能修改,图片不能上传? 1、那是因为你的测试硬盘是ntfs的需要设置写入权限,如果是fat32就不需要,可以直接测试。 解决方法:   (1)检查是否在IIS中对整个网站打开了“写入”权限,而不仅仅是数据库文件。   (2)检查是否在WIN2000的资源管理器中,将网站所在目录对EveryOne用户打开所有权限。具体方法是:打开“我的电脑”----找到网站所在文件夹----在其上点右键----选“属性”-----切换到“安全性”选项卡,在这里给EveryOne用户所有权限/给Internet来宾帐户所有权限。   注意: 如果你的系统是XP,请先点“工具”----“文件夹选项”----“查看”-----去掉“使用简单文件共享”前的勾,确定后,文件夹“属性”对话框中才会有“安全性”这一个选项卡。 (3)在站点文件夹上点右键--->共享和安全--->Web共享(安装IIS后会有此选项卡)--->设置共享位置--->共享文件夹--->设置相应的读写权限--->然后点确定。 注意事项: 1、硬盘为NTFS格式的时候,如果你的数据库没有读写权限,数据库不能更新。 请设置文件所在硬盘的属性->安全属性标签,设置成evryone为完全控制。 如没有看到evryone项, 请添加->搜索->选择evryone确定。 2、windowsXP中硬盘为NTFS显示“安全”选项卡的方法: 打开“我的电脑”选择工具菜的“文件夹选项”。在对话筐中单击“查看” 选项卡去掉使用简单文件共享(推荐) 3、IIS下网站没有写入权限问题(站点设置问题)在windows XP+IIS 环境下ACCESS数据库只有读权限的解决方法: 在站点文件夹上点右键--->共享和安全--->Web共享(安装IIS后会有此选项卡)--->设置共享位置--->共享文件夹--->设置相应的读写权限--->然后点确定。 再试试,该文件夹下的网站及数据库就有读写权限了,该情况目前只在WIN XP下有,win 2003下目前没发现次问题。 六、后台登录地址? 后台登录地址: /login.asp 用户名:wmgov 密 码:wmgov.cn 七、sql怎么设置? 默认是accse的 需要设置sql必须改链接文件 Conn.asp ConnUser.asp 原来的是 'DbType = "MSSQL" '链接MSSQL数据库 'DbType = "MYSQL" '链接MYSQL数据库 DbType = "ACCESS" '链接ACCESS数据库 需要改为 DbType = "MSSQL" '链接MSSQL数据库 'DbType = "MYSQL" '链接MYSQL数据库 'DbType = "ACCESS" '链接ACCESS数据库 用哪个前面就不需要逗号 另外 if DbType="MSSQL" then ConnStr = "driver={SQL Server};server=192.168.1.200;uid=sa;pwd=123456;database=8014" server=192.168.1.200表示数据库的所在电脑ip地址,如果本机就127.0.0.1 uid=sa数据密码 pwd=123456 数据库用户名 ; database=8014 数据库库名,如果不想改这些文件,你在sql2000里面添加数据的时候 就需要把 数据库密码 用户名 数据库名这样设置,否则你设置其他的就必须改这些信息,改为你设置的。 八、菜单导航怎么改? 1、顶部的网上报名,专题报道,图片新闻,网站地图,联系我们都在后台系统配置 网站属性 自定义顶部(TOP)菜单 里面修改 自定义底部(BOTTOM)菜单 可以修改网站底部 专题报道 图片新闻 网站地图 联系我们 社区论坛 等等文字信息。 2、栏目菜单需要打开top.asp文件找到相关div ul li 的css样式写的菜单,改汉字栏目名称,和超级链接地址。不知道栏目的链接 地址,可以再后台此栏目下面发表几个文章,然后打开网站,在文章顶部找到 您的位置 点击此栏目 就可以知道栏目的超级链接地址。 改菜单一定要按照原来的顺序和规则,如果想要调整间距 ,可以打开css文件里面的Wygkcn_Home.css 找到/*导航菜单样式表*/进行 修改。 九、顶部最新推荐,教师专栏,学生专栏,家长专栏怎么改? 打开wygkcnzwb_Daodu.asp 文件改汉字,然后改超级链接,然后在后台改栏目名称,如果你把栏目名称删去了,那么这个调用的id 也就不存在了,需要自己重新调用,(E_Typeid=2 and E_bigclassid=41) 网页里面有类似的参数,代表的是调用一级栏目为2,2级 栏目为41 的文章,如果你需要调用一级栏目为3 ,2级栏目为4就是(E_Typeid=3 and E_bigclassid=4) 改下id数就行了。 十、为什么文章页面顶部现在作者为网域高科? 打开wygkcn_ShowArticle.asp 找到以下代码,因为下面写的是如果作者为空,则显示为网域高科,所以你必须添加文章的时候写上作者, 如果不想写,就把这个代码的网域高科改为自己需要的,每次后台编辑器如果没有写作者会默认赋值为你改的信息。 作者:广州网域高科 |
EmEditor Pro(文本编辑器) V15.9.0 绿色中文版 emeditor 破解版以运行轻巧、敏捷而又功能强大、丰富著称,作为简单好用的文本编辑器,EmEditor 支持多种配置,可自定义颜色、字体、工具栏、快捷键、行距等,支持文本列块选择、无限撤消/重做等,是替代记事本的最佳编辑器。 我最近一直在用 EmEditor,其便携性很适合影子系统,标签窗口也是极方便操作,现提供 EmEditor 12.0.4官方简体中文便携版,别为 EmEditor 32 位和 64 位版。EmEditor 现已经添加了官方简体中文和繁体中文支持,无需额外汉化。 使用说明: 解压后直接运行主程序 EmEditor.exe 即可,所有配置都保存在 ini 文件中,纯绿色便携,完全兼容 Windows 7 及 PortableapPS.com 的便携平台,如果无法显示简体中文,可能需要重新配置。 2013/3/16 更新版本为 EmEditor 12.0.11 官方简体中文便携版,别为 EmEditor 32 位和 64 位版。EmEditor 现已经添加了官方简体中文和繁体中文支持,无需额外汉化。 emeditor 破解版配置教程: 下面就让我们一起来通过图形化界面配置适合自己的EmEditor编辑器。 1、众多的图形界面配置功能 通过查看EmEditor的安装目录,可以发现,EmEditor有几个配置文件,理论上应该可以通过修改配置文件来达到配置EmEditor的目 的。然而,打开配置文件一看,如果您用过Vim,配置过Vim的话,会发现EmEditor的配置文件没法看。既然这样,那我们自然就会使用图形画界面来 配置了。 启动EmEditor,点击菜单栏上的工具菜单,该菜单下的几个子菜单就是配置用的。先来预览一下自定义和配置对话框。 通过配置对话框上的标签,您应该大概知道EmEditor的配置项有多少了吧,也应该相信EmEditor是很强大的,而且可以很有“个性”。 首先,来自定义EmEditor,相当于定义一个编辑环境。 2、自定义对话框 在自定义对话框中,很多定义采用默认即可。在此大概说一些polaris修改的几个地方。 1)在文件选项卡选中记住最后打开的文件夹。这样一定程度上方便了后续操作。 2)历史选项卡中可以记录最近打开文件记录,同时记录最近使用的字体。这样,在换字体时,只需要执行:查看菜单,就会有几个最近使用的字体。 3)查看:可以配置其他栏的外观,如:资源管理器、大纲、输出窗口等;另外可以配置光标大小和颜色。 4)窗口:当时学Vim的时候,有一个很好的功能:保存当前工作环境,以便下次可以继续当前的工作。窗口就是用于配置这样类似的功能,不过似乎只能保存一个工作环境,没有Vim那么强大。 5)鼠标:配置鼠标按键执行的操作(主要是鼠标中建)。 6)状态栏:建议将所有选项勾选,在状态栏可以看到很多东西。 7)快捷方式:有一个很强大的功能,就是选中“在任务栏显示托盘符”,这样在任务栏可以方便的进行各种操作(通过自定义托盘图标)。 其他的选项您可以自己尝试。 3、打造共性 前面已经知道,EmEditor有一个“所有配置属性”。对,它是用于配置所有文件格式共同的属性。下面介绍常用配置。 3.1 常规选项卡 这是EmEditor最基本的一些配置。在这个选项卡中,一般建议勾选上显示标尺与行号,这是因为人们都习惯了编程(或阅读代码)时看到行号,这会 很方便定位,当然如果你不是程序员,可以不勾选。注意,这里勾选上,即使有些文件类型不想显示也没关系,别忘了EmEditor有“个性”化功能。 在这个选项卡有一个重要的配置项,那就是“制表符/缩进”,该对话框如下: 这里建议勾选上自动缩进和使用正则表达式,正则表达式的作用主要是为了编程缩进,以后再涉及。然后就是制表符大小和缩进大小,一般都会设置成4。 3.2 滚动选项卡 这里主要用于设置屏幕移动,根据你的习惯或爱好配置即可。有两个地方提一下: 1)“总是启用一页垂直滚动”。在使用编辑器的过程中,您肯定遇到过这种情况:编辑到了文件末尾,看着不方便,然后你就会按很多次回车来产生很多空 行,以使编辑行在中间。EmEditor提供了很好的解决方案,只需要勾选上“总是启用一页垂直滚动”,EmEditor便一直有一空页,让你的编辑总是 在上面或中间,而且没有产生多余的空行。 2)“水平格线”。选中后看起来像这样: 如果您喜欢可以勾选上。 3.3 文件选项卡 主要配置文件新建、编辑、保存时得一些信息,涉及文件编码等。一般采用默认即可。 3.4 备份、自动保存和关联选项卡 从标签名很容易知道功能。polaris备份功能一般不用(不喜欢它产生临时文件。呵呵。不过似乎不备

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧