none
タブコントロールの不具合? RRS feed

  • 質問

  • タブコントロールの幅を0にすると、WM_APINTメッセージの無限ループになって、
    フリーズしてしまいます。

    これはタブコントロールの不具合なのでしょうか?

    2009年9月27日 23:48

回答

  • 確かに条件があるようです。ダイアログベースアプリにタブコントロールを貼っただけでは再現しません。
    再現するアプリケーションはDLLであり、すでにかなり複雑な作りですので、再現条件を調べるのも一苦労しそうです。

    要はフリーズしなければ良いだけなので、ソースコード的に幅が0にならないようにして問題は解決しています。
    元々、素朴な疑問にすぎず、既出事項なら知りたかった程度のことですので、
    これ以上の追求は時間の無駄と思われるため、クローズとします。
    • 回答としてマーク ぶなっぷ 2009年9月28日 5:49
    2009年9月28日 5:49

すべての返信

  • タブコントロールの幅を0にすると、WM_APINTメッセージの無限ループになって、
    フリーズしてしまいます。

    これはタブコントロールの不具合なのでしょうか?


    多分、WM_PAINTメッセージのことを言っておられるのだと思いますが、
    単純にダイアログベースのプログラムでタブコントロールを貼ってサイズをcxとcyを0にするコードを書いてみましたが、
    言われているような現象は起こりませんでした。
    タブコントロール自体はかなり昔からあるコントロールですので簡単に再現するような不具合があるとは考えにくいです。
    一般的にうまく行かない場合はプログラマの使い方の方に問題があるケースが殆どだと思いますので
    自分で書いたコードの内容をもう一度見直す事をお勧めします。
    また、ここに提示されている内容では実際に貴方がどのようなコードを書いてその状態になったのかが
    さっぱり分かりません。開発環境の説明も一切有りませんし、それが起こっているプロジェクトの種類も分かりません。

    基本的に質問する時は、読んだ人がその状況を再現する為に必要な情報は全て公開しておかないと
    根掘り葉掘り聞かないといけない事になるのでできる限り詳細な情報を公開してください。
    とは言ってもプロジェクトを全部貼り付けられても量が多すぎるでしょうから、
    御自身で状況が再現する最小限の状態を探る必要があります。
    実際にはこの作業はデバッグの際の手順その物ですから質問するしないに関わらず行う必要があるはずです。

    その上で必要な情報を提示してください。
    掲示板は文字だけのやり取りですので質問者が提供してくれない情報は読み取る事はできません。

    解決した時は、参考になったレスポンスの所にある[回答としてマーク]ボタンをクリックしてスレッドを締めましょう。
    2009年9月28日 2:59
  • 確かに条件があるようです。ダイアログベースアプリにタブコントロールを貼っただけでは再現しません。
    再現するアプリケーションはDLLであり、すでにかなり複雑な作りですので、再現条件を調べるのも一苦労しそうです。

    要はフリーズしなければ良いだけなので、ソースコード的に幅が0にならないようにして問題は解決しています。
    元々、素朴な疑問にすぎず、既出事項なら知りたかった程度のことですので、
    これ以上の追求は時間の無駄と思われるため、クローズとします。
    • 回答としてマーク ぶなっぷ 2009年9月28日 5:49
    2009年9月28日 5:49