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





