高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1156
My ListBox control works fine on Mac OS X but I get a crash on Mac OS 9 when I click in the scrollbar


Q: Mac OS X では ListBox コントロールは問題なく動作しますが、Mac OS 9 では、スクロールバーをクリックするとクラッシュします。何が起きているのでしょうか。

A: ListBox コントロールが正しく動作するためには、コントロールのオーナーウィンドウにルートコントロールが必要です。コントロールのオーナーウィンドウにルートコントロールがないと、TrackControl または HandleControlClick の呼び出しに渡した actionProc の値に応じて、実際にクラッシュするか、スクロールバーが機能しなくなります。ルートコントロールが確立されていれば(CreateRootControl(...))、すべてが期待どおりに動作します。

Mac OS X 上では Carbon は、ウィンドウの作成時には必ず、デフォルトでルートコントロールを作成します。Mac OS X では、CreateRootControl を安全に呼び出すことができます。この呼び出しは他に影響を及ぼさず、ニ重にルートコントロールを作成することもありません。完全な例については、Human Interface Toolbox カテゴリの SimpleList サンプルコードを参照してください。


[2002 年 7 月 12 日]