次の方法で共有


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

参照

関連項目

CColorDialog クラス

階層図