MFC で使われているコールバック関数
Microsoft Foundation クラス ライブラリには、3 つのコールバック関数が表示されます。 これらのコールバック関数は、 CDC::EnumObjects、 CDC::GrayString、および CDC::SetAbortProc に渡されます。 例外はコールバック境界を越えてスローできないため、Windows に戻る前に、すべてのコールバック関数で MFC 例外をトラップする必要があることに注意してください。 例外の詳細については、 Exceptionsに関する記事を参照してください。
CDC::EnumObjects 用コールバック関数
CDC::GrayString 用コールバック関数
CDC::SetAbortProc 用コールバック関数
要件
ヘッダー: afxwin.h
CDC::EnumObjects 用コールバック関数
ObjectFunc名は、アプリケーションが指定した関数名のプレースホルダーです。
構文
int CALLBACK EXPORT ObjectFunc(
LPSTR lpszLogObject,
LPSTR* lpData);
パラメーター
lpszLogObject
オブジェクトの論理属性に関する情報を含む LOGPEN または LOGBRUSH データ構造を指します。
lpData
EnumObjects
関数に渡されるアプリケーション指定のデータを指します。
戻り値
コールバック関数は、 int
を返します。 この戻り値はユーザー定義です。 コールバック関数から 0 が返された場合、 EnumObjects
は早期に列挙を停止します。
解説
実際の名前をエクスポートする必要があります。
CDC::GrayString 用コールバック関数
OutputFunc は、アプリケーション指定のコールバック関数名のプレースホルダーです。
構文
BOOL CALLBACK EXPORT OutputFunc(
HDC hDC,
LPARAM lpData,
int nCount);
パラメーター
hDC
nWidth
で指定された幅と高さ以上のビットマップを持つメモリ デバイス コンテキストを識別し、GrayString
にnHeight
します。
lpData
描画される文字列を指します。
nCount
出力する文字数を指定します。
戻り値
成功を示すには、コールバック関数の戻り値が TRUE である必要があります。それ以外の場合は FALSE です。
解説
コールバック関数 (OutputFunc) は、(x, y ではなく、座標 (0,0) を基準にして画像を描画する必要があります。
CDC::SetAbortProc 用コールバック関数
AbortFunc という名前は、アプリケーションが指定した関数名のプレースホルダーです。
構文
BOOL CALLBACK EXPORT AbortFunc(
HDC hPr,
int code);
パラメーター
hPr
デバイス コンテキストを識別します。
code
エラーが発生したかどうかを指定します。 エラーが発生しなかった場合は 0 です。 印刷マネージャーが現在ディスク領域を使い切っており、アプリケーションが待機するとより多くのディスク領域が使用可能になる場合は、SP_OUTOFDISKされます。 codeがSP_OUTOFDISKされている場合、アプリケーションは印刷ジョブを中止する必要はありません。 そうでない場合は、 PeekMessage
または windows 関数を呼び出して、印刷マネージャー GetMessage
生成する必要があります。
戻り値
中止ハンドラー関数の戻り値は、印刷ジョブを続行する場合は 0 以外、取り消された場合は 0 です。
解説
実際の名前は、 CDC::SetAbortProc の「解説」セクションの説明に従ってエクスポートする必要があります。
関連項目
構造体、スタイル、コールバック関数とメッセージ マップ
CDC::EnumObjects
CDC::SetAbortProc
CDC::GrayString