次のようなコードがあります。
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)
ます。正常に完了した場合にのみ、ユーザーは [OK] をクリックできます。MYCLASS_ERROR
は、enum
あらゆる種類の戻り値の型とステータスを含む の値です。
で [OK] をクリックしてSomeDialog
も、エラー メッセージがまだ表示されることがわかりました。もう少し深く掘り下げたところ、MYCLASS_ERROR
= IDOK
= 1 であることがわかりました。
だから私の質問は、他の実装のステータスと衝突しないように、これらすべての戻りステータスをどのように定義すればよいですか? つまり、私の関数は、他の関数によって返されない値を返す必要があります(または他の関数をできるだけ少なくする必要があります)。
すべての関数が TRUE または FALSE のみを返すように設計を変更することを考えました。しかし、これはすべての場合に実現可能というわけではありません。私も答えをかなり探しましたが、これまでのところ何も見つかりませんでした。
ご覧いただきありがとうございます。