VC6.0编写的对话框无法关闭

我知道把//CDialog::OnCancel();的//去掉后,“取消”按钮会不起作用,但没想到这个窗口无论是点击右上角的X号,或alt+F4也都关不了。难道这句代码除了影响“取消”按钮,还会影响那个X号?

在这里,OnCancel()函数和其它的按钮响应函数不太一样,它本身是CDialog类的虚函数。在基于对话框的程序中,点击关闭按钮,按键 ALT + F4,都会调用此函数(可加断点调试查看),注释掉调用基类函数的代码自然会导致无法手动关闭对话框。

可以查阅MSDN:
CDialog::OnCancel
virtual void OnCancel( );
If you implement the Cancel button in a modeless dialog box, you must
override the OnCancel method and call DestroyWindow from within
it. Do not call the base-class method, because it calls EndDialog, which
makes the dialog box invisible but does not destroy it.追问

OK

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-30
  在基于对话框的程序中,点击关闭按钮,按键 ALT + F4,都会调用此函数(可加断点调试查看),注释掉调用基类函数的代码自然会导致无法手动关闭对话框。
  可以查阅MSDN:
  CDialog::OnCancel
  virtual void OnCancel( );
  If you implement the Cancel button in a modeless dialog box, you must override the OnCancel method and call DestroyWindow from within it. Do not call the base-class method, because it calls EndDialog, which makes the dialog box invisible but does not destroy it.

VC6.0编写的对话框无法关闭
在这里,OnCancel()函数和其它的按钮响应函数不太一样,它本身是CDialog类的虚函数。在基于对话框的程序中,点击关闭按钮,按键 ALT + F4,都会调用此函数(可加断点调试查看),注释掉调用基类函数的代码自然会导致无法手动关闭对话框。可以查阅MSDN:CDialog::OnCancel virtual void OnCancel( );If y...

VC6.0 写的一个程序,debug版本没有问题,但是在release版本下,当关...
如果是对话框程序,在OnCancel和OnOk的时候,加上exit(0)就OK啦,肯定可以解决

用VC++6.0新建的对话框程序,编译报错?
因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)”—>“Directories(目录)”重新设置“Excutable Fils、Include Files、Library Files、Source Files”的路径。很多情况可能就一个盘符的不同 (例如你的VC装在C,但是这些路径全部在D),改过来就OK了。如果你是按...

win8里安得vc6.0运行时候按三个键总会有提示怎么关掉
关闭自动更新的方法:控制面板\/系统和安全\/WindowsUpdate(左边)更改设置\/把重要更新下面的选项改为,从不检查更新即可(Win78)。Win8组策略禁用更新的方法:按微软图标键+R键打开运行,输入gpedit.msc打开组策略,在左侧选用户配置\/管理模板\/Windows组件\/Windows更新,在右侧双击“删除使用所有Windows更新...

VC++6.0不能停止调试程序的解决方案
而且,当修改代码之后,就不能重新编译了。想结束该进程的唯一的办法是关闭VC6.0,并重新开启。更新两个dll文件的版本。在VC6.0安装目录下的 Common\/MSDev98\/Bin 里有两个dll文件:DM.dll 和 TLLOC.dll。将DM.dll替换成6.0.9782.0版本的或更新,将TLLOC.dll替换成6.00.8168.0版本的或更新。...

运行VC++6.0,点击“文件>打开”后弹出一小框,提示“内存不能为read...
打开【工具】(Tools)菜单,点击【定制…】(Customize),在弹出的对话框中选择【键盘】选项卡。在【类别】框中选择【文件】,【命令】框中选择【FileOpen】,【当前键】框中选择【Ctrl+O】,然后单击右边的【移去】按钮将其删除,如下图。然后在【类别】框中选择【工程】,【命令】框中选择【...

VC++6.0编译没有错,运行总是弹出停止运行的对话框,求大神帮忙看下!_百 ...
我把 Piano::disp(); 这个语句注释掉,就解决了问题。我在Linux下编译时,出现了一些警告。因此,我又格外做了其它小修改。Piano::disp(); 这个语句注释前后的运行结果:同理,其它几个类的disp()方法中,也要把类似Piano::disp();的语句删除才行,比如 删除 Artist::disp();

VC6.0创建一个MFC (exe) 【基本对话框】 工程 之后关闭之后怎么再打开...
打开工程,英文是OpenWorkSpace,文件file菜单里面有。如果忘记了工程目录,可以在file文件菜单中,有个Recent Workspaces,这里可以找到最近打开的几个工程,点击就可以打开工程进行编辑了。

vc++6.0基于对话框,当点击窗口“X”关闭时,提示“是否关闭”,点击...
不关闭就直接返回 return;要关闭就执行基类的OnClose( );

如何用VC编程实现关闭指定窗口程序
1 用VC6.0建立一个基于对话框的程序,如稀土所示 2 后面几个步骤全部都默认,一路点击下一步 3 找到资源对话框,并添加一个button控件 4 双击 button1,程序自动生成void CTestExitDlg::OnButton1() 函数 5 添加OnButton1()的响应函数代码,如下图所示 6 编写KillProcess功能函数,用于关掉指定...

相似回答