Visual Studio MFC 对话框控件 OnOk() 与 OnBnClickedOk() 的区别 20
VC6中双击对话框MFC程序会自动生成OnOk()不过在VS2010中却是OnBnClickedOk(),但在VS2010的“类向导”中还是可以找到并添加对OnOk()虚...
VC6中双击对话框MFC程序会自动生成OnOk()不过在VS2010中却是OnBnClickedOk(),但在VS2010的“类向导”中还是可以找到并添加对OnOk()虚函数的重写。
我想知道二者有什么区别还是完全一样,以及执行顺序先后或者优先级一类的信息。 展开
我想知道二者有什么区别还是完全一样,以及执行顺序先后或者优先级一类的信息。 展开
1个回答
展开全部
调用OnOK时会对数据做一个自动更新与验证,而OnCancel仅仅是销毁窗口。
OnCancel()与OnOK();都是CDialog的成员函数。
CDialog::OnOK
说明当用户按OK按钮(ID是IDOK)时调用。覆盖该函数执行OK按钮动作。如果对话框包括自动数据检验和交换,缺省方式是对应用的某些变量进行数据的 检验和更新。如果在非模态对话框中实现OK按钮,必须覆盖OnOK成员函数,并在其中调用DestoryWindow 。不能调用基类成员函数,那将会调用EndDialog,使对话框虽然存在但不可视。
CDialog::OnCancel
说明当用户在模态对话框或非模态对话框内单击Cancel按钮或按ESC键时,窗体调用这个成员函数。覆盖该成员函数,执行Cancel按钮动作,缺省方 式是调用EndDialog来简单中止模态对话框,并使DoModal 返回IDCANCEL。如果在非模态对话框中实现Cancel按钮,必须覆盖OnCancel成员函数,并在其中调用DestoryWindow 。不能调用基类成员函数,那将会调用EndDialog,使对话框虽然存在但不可视。
OnCancel()与OnOK();都是CDialog的成员函数。
CDialog::OnOK
说明当用户按OK按钮(ID是IDOK)时调用。覆盖该函数执行OK按钮动作。如果对话框包括自动数据检验和交换,缺省方式是对应用的某些变量进行数据的 检验和更新。如果在非模态对话框中实现OK按钮,必须覆盖OnOK成员函数,并在其中调用DestoryWindow 。不能调用基类成员函数,那将会调用EndDialog,使对话框虽然存在但不可视。
CDialog::OnCancel
说明当用户在模态对话框或非模态对话框内单击Cancel按钮或按ESC键时,窗体调用这个成员函数。覆盖该成员函数,执行Cancel按钮动作,缺省方 式是调用EndDialog来简单中止模态对话框,并使DoModal 返回IDCANCEL。如果在非模态对话框中实现Cancel按钮,必须覆盖OnCancel成员函数,并在其中调用DestoryWindow 。不能调用基类成员函数,那将会调用EndDialog,使对话框虽然存在但不可视。
追问
很感谢,不过我要的是OnOk()跟OnBnClickedOk()的区别
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询