CWnd::OnMeasureItemnbsp(&N);

afx_msg void OnMeasureItem ( int nIDCtl、 LPMEASUREITEMSTRUCT lpMeasureItemStruct );

パラメーター

nIDCtl

コントロールの ID。

lpMeasureItemStruct

オーナー描画コントロールのサイズを含むMEASUREITEMSTRUCTデータ構造体へのポインター。

解説

コントロールが作成されたとき、フレームワーク、フレームワークによって、オーナー描画ボタン、コンボ ボックス、リスト ボックス、またはメニュー項目の所有者を呼び出します。

このメンバー関数をオーバーライドし、 lpMeasureItemStructとリターンで指摘したMEASUREITEMSTRUCTデータ構造を入力;このコントロールのサイズを Windows に通知し、コントロールとユーザーとの対話を正しく処理することができます。

リスト ボックスまたはコンボ ボックス、 LBS_OWNERDRAWVARIABLEまたはCBS_OWNERDRAWVARIABLEのスタイルを作成する場合、フレームワークは、コントロール内の各アイテムの所有者はこの関数を呼び出します;それ以外の場合、この関数は一度呼びます。

Windows コンボ ボックスとOWNERDRAWFIXEDスタイルを送信する前に作成したリスト ボックスの所有者は、 OnMeasureItemへの呼び出しを開始する、 WM_INITDIALOGメッセージ。所有者がこの呼び出しを受信すると、その結果、Windows まだコントロールで使用されるフォントの幅と高さ確認していません;関数呼び出しとこれらの値を必要とする計算アプリケーションやライブラリの主な機能で発生する必要があります。

測定対象項目が、 CMenuCListBox CComboBoxオブジェクトの場合は、適切なクラスのMeasureItem仮想関数が呼び出されます。計算し、各項目のサイズを設定するには、適切なコントロールのクラスのメンバー関数MeasureItemをオーバーライドします。

OnMeasureItemは、実行時に、コントロールのクラスを作成または、 LBS_OWNERDRAWVARIABLEまたはCBS_OWNERDRAWVARIABLEのスタイルを作成した場合にのみ呼び出されます。ダイアログ エディターでコントロールを作成する場合、 OnMeasureItemは呼び出されません。これは、コントロールの作成プロセスの早い段階でために、WM_MEASUREITEMメッセージが送信されるためです。場合ためSubclassDlgItem、またはSubclassWindow、サブクラスを使用してサブクラス化は、通常、作成プロセスの後に発生します。したがって、コントロールのOnChildNotify関数は、MFC を使用してON_WM_MEASUREITEM_REFLECTを実装するためのメカニズムですのために、WM_MEASUREITEMメッセージを処理する方法はありません。

特価;このメンバー関数は、Windows メッセージを処理するアプリケーションを許可するためにフレームワークによって呼び出されます。関数に渡されるパラメーターは、メッセージが受信されたときに、フレームワークによって受信パラメーターを反映します。この関数の基本クラス実装を呼び出す場合は、その実装はもともとメッセージと指定パラメーターではなく、関数に渡されるパラメーターを使用します。(&N)。

CWnd の概要|nbsp;クラス メンバー |階層図(&N)

参照特価;CMenu::MeasureItemCListBox::MeasureItemCComboBox::MeasureItem ために、WM_MEASUREITEM(&N)

Index