none
OnTimerの返り値について RRS feed

  • 質問

  •  

    現在、VC++ 6.0からVC++2005への移行を考えており、今まで書いていたコードがそのまま利用できるか確認しています。

    その中で、OnTimer()の処理において、VC++6.0の時では、OnTimer()をint型として宣言できたのですが、VC++2005

    ではint型に宣言できません。なので、コードの途中に記載してあるreturn文に数値を宣言しておくとエラーが発生します。

    対処方法とては、goto文にて関数の文尾にジャンプするしかないのでしょうか?どなたかわかる方いらっしゃいましたら、

    回答ください。

    2009年1月26日 1:32

回答

  • VC++ 6.0を確認しましたがCWnd:OnTimer()の戻り値はvoidです。そもそもの問題としてどのような値を返すつもりだったのでしょうか? gotoせずとも

    return;

    でいけます。(VC++ 6.0もVC++ 2005も)
    CWnd:OnTimer()以外ならすみません、質問文に明記してください。

    • 回答としてマーク sk7474 2009年2月12日 6:22
    2009年1月26日 9:59
  • 基本的にMFCでのメッセージハンドラは型が決まっていますから勝手に変更することは出来ないと思います。

    また、無理やり値を返却したところで呼び出し側では無視されてしまうのではないでしょうか?

    数値を返す事が目的なのではなく、途中で関数から抜けたいと言うだけの話であれば、

    佐祐理さんが書かれているように単純にreturn;で良いはずです。


    解決した時は、参考になったレスポンスの所にある[回答済み]ボタンをクリックしてスレッドを締めましょう。
    • 回答としてマーク sk7474 2009年2月12日 6:21
    2009年1月29日 1:57

すべての返信

  • VC++ 6.0を確認しましたがCWnd:OnTimer()の戻り値はvoidです。そもそもの問題としてどのような値を返すつもりだったのでしょうか? gotoせずとも

    return;

    でいけます。(VC++ 6.0もVC++ 2005も)
    CWnd:OnTimer()以外ならすみません、質問文に明記してください。

    • 回答としてマーク sk7474 2009年2月12日 6:22
    2009年1月26日 9:59
  • 基本的にMFCでのメッセージハンドラは型が決まっていますから勝手に変更することは出来ないと思います。

    また、無理やり値を返却したところで呼び出し側では無視されてしまうのではないでしょうか?

    数値を返す事が目的なのではなく、途中で関数から抜けたいと言うだけの話であれば、

    佐祐理さんが書かれているように単純にreturn;で良いはずです。


    解決した時は、参考になったレスポンスの所にある[回答済み]ボタンをクリックしてスレッドを締めましょう。
    • 回答としてマーク sk7474 2009年2月12日 6:21
    2009年1月29日 1:57
  • こんにちは。中川俊輔です。

    佐祐理さん、PATIOさん、回答ありがとうございます。

    メタルさん、フォーラムのご利用ありがとうございます。
    その後いかがでしょうか?疑問は解決しましたか?
    有用な情報と思われたため、佐祐理さん、PATIOさんの回答へ回答済みチェックをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!


    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年2月12日 6:25