我有一些代码如下所示:
void MyClass::OnButtonClick()
{
int retVal = SomeDialog.DoModal();
if(retVal == MYCLASS_ERROR)
{
MessageBox("Error"...blah ...blah);
}
else if(retVal == IDOK) // IDOK is returned on clicking the 'OK' button
{
MessageBox("All is well"...blah ...blah);
}
}
SomeDialog
只显示一个进度条。出现任何错误时,进度条会通过调用自动关闭EndDialog(MYCLASS_ERROR)
。只有在成功完成后,用户才能在此处单击“确定”。MYCLASS_ERROR
是一个enum
包含各种返回类型和状态的值。
我发现在点击确定时SomeDialog
,仍然显示错误信息!我挖得更深了,发现MYCLASS_ERROR
= IDOK
= 1。
所以我的问题是,我应该如何定义所有这些返回状态,使其不会与任何其他实现的状态发生冲突?这意味着,我的函数应该返回任何其他函数(或尽可能少的其他函数)不返回的值。
我想修改我的设计,使所有函数只返回 TRUE 或 FALSE。但是,这并非在所有情况下都是可行的。我也搜索了很多答案,但到目前为止还没有找到任何答案。
感谢您的关注!