CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

请问如何在对话框,多添加一个按扭(现已有ok和cancle),也能象OK或CANCLE一样......

楼主Rockeyq()2002-08-28 14:47:27 在 VC/MFC / 基础类 提问

请问如何在对话框,多添加一个按扭(现已有ok和cancle),也能象OK或CANCLE一样,  
  点了以后能自己关闭,然后根据点那个按扭作相应的操作,象OK与CANCLE一样:  
  if(Dlg.DoModal()==IDOK)  
  {  
          ....  
          ....  
  }  
  if(Dlg.DoModal()==IDCANCLE)  
  {  
          ....  
          ....  
  }  
  谢谢!  
   
  问题点数:100、回复次数:19Top

1 楼nanjianhui(nan)回复于 2002-08-28 14:51:22 得分 0

你只需要把他们的ID号设为IDOK和IDCANCEL就可以了。Top

2 楼nanjianhui(nan)回复于 2002-08-28 14:52:47 得分 0

也可以分别调用OnOK()函数和OnCancel()函数。Top

3 楼wangjianddy(~~~~>_<~~~~)回复于 2002-08-28 14:55:45 得分 0

添加一个按钮ID命名为  
  ID_MYCANCEL  
   
  添加响应函数  
  void   CXXXDlg::OnMyCancel()  
  {  
  //////////  
  此处为自己的操作代码  
  //////////  
  CDialog::OnCancel();  
  }Top

4 楼Rockeyq()回复于 2002-08-28 14:57:28 得分 0

要有不同的操作,要是设成IDOK或IDCANCLE不是重了吗?Top

5 楼webber84(***闭关修炼中***)回复于 2002-08-28 14:57:39 得分 80

选在符号表中添加一个变量作为DoModal的返回值,如ID_DONE.添加按钮和消息处理函数OnDone:  
  void   CMyDlg::OnDone()  
  {  
          UpdateData(true);  
          EndDialog(ID_DONE);  
  }  
  然后就可以像IDOK一样用了:  
  if(dlg.DoModal()==OnDone)  
  {  
        //do   something  
  }Top

6 楼webber84(***闭关修炼中***)回复于 2002-08-28 14:59:02 得分 0

上面写错了,应该是:  
  if(dlg.DoModal()==ID_DONE)  
  {  
        //do   something  
  }  
  Top

7 楼kingzai(stevenzhu)回复于 2002-08-28 14:59:34 得分 0

if   you   only   call   CDialog::OnOK();Top

8 楼Rockeyq()回复于 2002-08-28 15:01:19 得分 0

对不起,符号表在什么地方?Top

9 楼nanjianhui(nan)回复于 2002-08-28 15:03:07 得分 0

直接在你添加按钮的德函数里面调用OnOK()和OnCancel()就可以了。Top

10 楼zhangxhsj(泡泡龙)回复于 2002-08-28 15:03:37 得分 20

我想,你只要再简单地加入一个按钮,当然你不能再起名叫IDOK或IDCANCEL,因为在一个DIALOG中不能有重复的ID。  
   
  然后你可以在合适的地方再定义一个ID,如  
  #define   IDTRY   *****  
   
  在该窗口的该按钮的click事件中,写如下函数:  
  EndDialog(IDTRY);  
  Top

11 楼zhangxhsj(泡泡龙)回复于 2002-08-28 15:05:52 得分 0

看来  
    webber84(糕鱼昏)    
  和我的意见是一致的。Top

12 楼cunni(有谁见过彼得.潘)回复于 2002-08-28 15:07:08 得分 0

只要在你添加按钮处理BN_CLICKED消息的函数最后调用OnOK{}就行  
  Top

13 楼utada776(招娣)回复于 2002-08-28 15:09:41 得分 0

void   CMyDialog::OnButton()    
  {  
  //   TODO:   Add   extra   cleanup   here  
   
  CDialog::OnCancel();  
  }  
  Top

14 楼Rockeyq()回复于 2002-08-28 15:17:02 得分 0

我是想在另一个对话框A中,根据对话框B中点选某一个按扭,作响应的操作  
    请问webber84(糕鱼昏)你说的符号表在什么地方?  
  谢谢各位?    
  Top

15 楼casinosun(去日苦多)回复于 2002-08-28 15:21:46 得分 0

EndDialogTop

16 楼webber84(***闭关修炼中***)回复于 2002-08-28 15:29:42 得分 0

菜单中有的,好像叫什么symbolic什么的,记不清了。其实你就返回一个整数值也可以的,只要EndDialog返回的值和你用来与DoModal比较的值相等就可以了。  
  Top

17 楼Rockeyq()回复于 2002-08-28 15:40:32 得分 0

多谢webber84(糕鱼昏)   ,问题已解决,也谢谢其他的各位热心高手!!!Top

18 楼DavidWhite(勇介)回复于 2002-08-28 15:49:52 得分 0

点你的Button,做完你的事后,在最后加上一句SendMessage(WM_CLOSE);就可以啦:)  
  void   CXXXDlg::MyCloseButton   ()  
  {  
        //do   your   thing.  
        SendMessage(WM_CLOSE);  
  }Top

19 楼future0723(大连流氓)回复于 2002-08-28 15:50:27 得分 0

有计划然后有产量,良好的生产规律。Top

相关问题

  • installshield 添加对话框
  • 添加html对话框
  • 如何在对话框中添加ToolBarCtrl?
  • 对话框中如何添加菜单?
  • pb中如何添加对话框?
  • 对话框添加carray成员变量
  • 在winform中怎么添加对话框?
  • 为何给About对话框添加OnCreate函数后,打开About对话框就异常?我并未添加代
  • 怎样添加对话框的工具条?
  • 基于对话框的应用如何添加工具栏?

关键词

  • 函数
  • cancle
  • 对话框
  • 添加
  • ondone
  • domodal
  • 按钮
  • 请问
  • idok
  • webber84

得分解答快速导航

  • 帖主:Rockeyq
  • webber84
  • zhangxhsj

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo