CColorDialog::OnColorOK
ダイアログ ボックスに入力された色を検証するためにオーバーライドします。
virtual BOOL OnColorOK( );
戻り値
ダイアログ ボックスを閉じる場合は; 入力した色を受け入れる場合は 0。
解説
ユーザーがカラー ダイアログ ボックスで選択した色のカスタム検証を提供する場合にのみ、この関数をオーバーライドします。
ユーザーは、次の 2 とおりの方法の 1 種類で色を選択できます:
カラー パレットの色のをクリックします。選択された色の RGB 値は適切な RGB のエディット ボックス内に反映されます。
RGB のエディット ボックスに入力した値
OnColorOK をオーバーライドすることにより、ユーザーは、アプリケーション固有の理由の一般的な色のダイアログ ボックスで入力する色を拒否することができます。
通常、無効な色が入力された場合、フレームワークがカラー既定の検証を提供し、メッセージ ボックスを表示するため、この関数を使用する必要はありません。
色の選択を強制的に OnColorOK 内から SetCurrentColor を呼び出すことができます。OnColorOK (つまり、色の変更を受け入れるユーザーのクリック OK ) 発生すると、新しい色の RGB 値を取得するに GetColor を呼び出すことができます。
使用例
// Override OnColorOK to validate the color entered to the
// Red, Green, and Blue edit controls. If the color
// is BLACK (i.e. RGB(0, 0,0)), then force the current color
// selection to be the color initially selected when the
// dialog box is created. The color dialog won't close so
// user can enter a new color.
BOOL CMyColorDlg::OnColorOK()
{
// Value in Red edit control.
COLORREF clrref = GetColor();
if (RGB(0, 0, 0) == clrref)
{
AfxMessageBox(_T("BLACK is not an acceptable color. ")
_T("Please enter a color again"));
// GetColor() returns initially selected color.
SetCurrentColor(GetColor());
// Won't dismiss color dialog.
return TRUE;
}
// OK to dismiss color dialog.
return FALSE;
}
必要条件
ヘッダー : afxdlgs.h