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

Technical Q&A QA1324
Why doesn't my Scrolling Text Box control work in a compositing window?


Q:コンポジティングウインドウで Scrollin Text Box コントロールが機能しません。

A:一部の古いコントロールは、Mac OS X 10.2 で新たに導入されたコンポジティングウインドウでは正しく機能しません。これらのコントロールの一部(たとえば Databrowser)は Mac OS X 10.3 でアップデートされているので機能しますが、開発者にあまり人気のないものや、代替手段のあるものはアップデートされていません。

Scrolling Text Box コントロール(CDEF 27)はリソースベースであり、現行の Mac OS X API は他の種類のストレージを使用する傾向があります。

サンプルコード HIScrollingTextBox は、このコントロールのための 2 つの異なる代替手段を示しています。



リスト 1 HICreateScrollingTextBox


extern OSStatus 
HICreateScrollingTextBox(
    const HIRect * inBounds,                   /* NULL の場合もある */
    CFStringRef    inScrollingText,
    Boolean        inAutoScroll,
    UInt32         inDelayBeforeAutoScroll,
    UInt32         inDelayBetweenAutoScroll,
    UInt16         inAutoScrollAmount,
    HIViewRef *    outHIView);



この API は、Mac OS X 10.2 以降で使用でき、CreateScrollingTextBoxControl と同じパラメータを取ります。ただし、不要な WindowRef パラメータとリソース ID 番号は、CFStringRef によって置き換えられています。



リスト 2 HICreateScrollingHITextBox


extern OSStatus 
HICreateScrollingHITextBox(
    const HIRect * inBounds,                   /* NULL の場合もある */
    CFURLRef       inURLRef,
    Boolean        inAutoScroll,
    UInt32         inDelayBeforeAutoScroll,
    UInt32         inDelayBetweenAutoScroll,
    UInt16         inAutoScrollAmount,
    HIViewRef *    outHIView);



この API は、Mac OS X 10.3 以降で使用でき、CreateScrollingTextBoxControl と同じパラメータを取ります。ただし、不要な WindowRef パラメータとリソース ID 番号は、CFURLRef によって置き換えられています。この CFURLRef は、たとえば TextEdit で作成された .rtf ファイルを指定することができます。


[2003 年 11 月 13 日]