Aracılığıyla paylaş


CColorDialog Sınıfı

Uygulamanıza bir renk seçimi iletişim kutusu eklemenizi sağlar.

Sözdizimi

class CColorDialog : public CCommonDialog

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CColorDialog::CColorDialog Bir CColorDialog nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CColorDialog::D oModal Bir renk iletişim kutusu görüntüler ve kullanıcının seçim yapmasına izin verir.
CColorDialog::GetColor Seçili rengin değerlerini içeren bir COLORREF yapı döndürür.
CColorDialog::GetSavedCustomColors Kullanıcı tarafından oluşturulan özel renkleri alır.
CColorDialog::SetCurrentColor Geçerli renk seçimini belirtilen renge zorlar.

Korumalı Yöntemler

Veri Akışı Adı Açıklama
CColorDialog::OnColorOK İletişim kutusuna girilen rengi doğrulamak için geçersiz kılın.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CColorDialog::m_cc İletişim kutusunun ayarlarını özelleştirmek için kullanılan bir yapı.

Açıklamalar

CColorDialog Nesne, görüntüleme sistemi için tanımlanan renklerin listesini içeren bir iletişim kutusudur. Kullanıcı listeden belirli bir rengi seçebilir veya oluşturabilir. Bu renk, iletişim kutusundan çıkıldığında uygulamaya geri bildirilir.

Bir CColorDialog nesne oluşturmak için sağlanan oluşturucuyu kullanın veya yeni bir sınıf türetip kendi özel oluşturucunuzu kullanın.

İletişim kutusu oluşturulduktan sonra, iletişim kutusunun denetimlerinin değerlerini başlatmak için m_cc yapısındaki herhangi bir değeri ayarlayabilir veya değiştirebilirsiniz. m_cc yapısı CHOOSECOLOR türündedir.

İletişim kutusunun denetimlerini başlatdıktan sonra, iletişim kutusunu görüntülemek ve kullanıcının bir renk seçmesine izin vermek için üye işlevini çağırın DoModal . DoModal kullanıcının iletişim kutusunun Tamam (IDOK) veya İptal (IDCANCEL) düğmesi seçimini döndürür.

IDOK döndürürse DoModal , kullanıcı tarafından bilgi girişini almak için 'nin üye işlevlerinden birini CColorDialogkullanabilirsiniz.

İletişim kutusunun başlatılması sırasında bir hata oluşup oluşmadığını belirlemek ve hata hakkında daha fazla bilgi edinmek için Windows CommDlgExtendedError işlevini kullanabilirsiniz.

CColorDialog , Windows 3.1 ve sonraki sürümleriyle birlikte gelen COMMDLG.DLL dosyasına dayanır.

İletişim kutusunu özelleştirmek için öğesinden CColorDialogbir sınıf türetin, özel bir iletişim kutusu şablonu sağlayın ve genişletilmiş denetimlerden gelen bildirim iletilerini işlemek için bir ileti eşlemesi ekleyin. İşlenmemiş iletiler temel sınıfa geçirilmelidir.

Kanca işlevini özelleştirmek gerekli değildir.

Not

Bazı yüklemelerde, çerçeveyi CColorDialog diğer CDialog nesneleri gri yapmak için kullandıysanız nesne gri bir arka planla görüntülenmez.

kullanma CColorDialoghakkında daha fazla bilgi için bkz. Ortak İletişim Kutusu Sınıfları

Devralma Hiyerarşisi

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CColorDialog

Gereksinimler

Üst bilgi: afxdlgs.h

CColorDialog::CColorDialog

Bir CColorDialog nesne oluşturur.

CColorDialog(
    COLORREF clrInit = 0,
    DWORD dwFlags = 0,
    CWnd* pParentWnd = NULL);

Parametreler

clrInit
Varsayılan renk seçimi. Değer belirtilmezse varsayılan değer RGB(0,0,0) (siyah) olur.

dwFlags
İletişim kutusunun işlevini ve görünümünü özelleştiren bir bayrak kümesi. Daha fazla bilgi için Windows SDK'sında CHOOSECOLOR yapısına bakın.

pParentWnd
İletişim kutusunun üst veya sahip penceresinin işaretçisi.

Örnek

// Show the Color dialog with all the default settings.
CColorDialog dlg1;
dlg1.DoModal();

// Show the fully opened Color dialog with red as the selected color.
CColorDialog dlg2(RGB(255, 0, 0), CC_FULLOPEN);
dlg2.DoModal();

CColorDialog::D oModal

Windows ortak renk iletişim kutusunu görüntülemek ve kullanıcının bir renk seçmesine izin vermek için bu işlevi çağırın.

virtual INT_PTR DoModal();

Dönüş Değeri

IDOK veya IDCANCEL. IDCANCEL döndürülürse, bir hata oluşup oluşmadığını belirlemek için Windows CommDlgExtendedError işlevini çağırın.

IDOK ve IDCANCEL, kullanıcının Tamam mı yoksa İptal düğmesini mi seçtiğini gösteren sabitlerdir.

Açıklamalar

m_cc yapısının üyelerini ayarlayarak çeşitli renk iletişim kutusu seçeneklerini başlatmak istiyorsanız, bunu çağırmadan DoModal önce, ancak iletişim kutusu nesnesi oluşturulduğunda yapmalısınız.

çağrısı DoModalyaptıktan sonra, kullanıcı tarafından iletişim kutusuna ayarları veya bilgi girişini almak için diğer üye işlevlerini çağırabilirsiniz.

Örnek

CColorDialog::CColorDialog örneğine bakın.

CColorDialog::GetColor

Kullanıcının seçtiği renkle ilgili bilgileri almak için çağrısından DoModal sonra bu işlevi çağırın.

COLORREF GetColor() const;

Dönüş Değeri

Renk iletişim kutusunda seçilen rengin RGB bilgilerini içeren COLORREF değeri.

Örnek

// Get the selected color from the CColorDialog.
CColorDialog dlg;
if (dlg.DoModal() == IDOK)
{
   COLORREF color = dlg.GetColor();
   TRACE(_T("RGB value of the selected color - red = %u, ")
         _T("green = %u, blue = %u\n"),
         GetRValue(color), GetGValue(color), GetBValue(color));
}

CColorDialog::GetSavedCustomColors

CColorDialog nesneleri, kullanıcının renk seçmeye ek olarak en fazla 16 özel renk tanımlamasına izin verir.

static COLORREF* PASCAL GetSavedCustomColors();

Dönüş Değeri

Kullanıcı tarafından oluşturulan özel renkleri depolayan 16 RGB renk değeri dizisinin işaretçisi.

Açıklamalar

GetSavedCustomColors Üye işlevi bu renklere erişim sağlar. DoModal IDOK döndürdükten sonra bu renkler alınabilir.

Döndürülen dizideki 16 RGB değerinin her biri RGB(255.255.255) (beyaz) olarak başlatılır. Kullanıcı tarafından seçilen özel renkler yalnızca uygulama içindeki iletişim kutusu çağrıları arasında kaydedilir. Bu renkleri uygulamanın çağrıları arasında kaydetmek istiyorsanız, bunları başlatma gibi başka bir şekilde kaydetmeniz gerekir (. INI) dosyası.

Örnek

// Get a pointer to an array of 16 RGB color values that stores
// custom colors created by the user from CColorDialog.
CColorDialog dlg;
if (dlg.DoModal() == IDOK)
{
   COLORREF *ccolor = dlg.GetSavedCustomColors();
   for (int i = 0; i < 16; i++)
   {
      TRACE(_T("RGB value of the selected color - red = %u, ")
            _T("green = %u, blue = %u\n"),
            GetRValue(ccolor[i]),
            GetGValue(ccolor[i]),
            GetBValue(ccolor[i]));
   }
}

CColorDialog::m_cc

Üyeleri iletişim kutusunun özelliklerini ve değerlerini depolayan CHOOSECOLOR türünde bir yapı.

CHOOSECOLOR m_cc;

Açıklamalar

Nesneyi CColorDialog oluşturdıktan sonra, DoModal üye işlevini çağırmadan önce iletişim kutusunun çeşitli yönlerini ayarlamak için m_cc kullanabilirsiniz.

Örnek

// The code below uses CColorDialog::m_cc data member to
// customize the settings of CColorDialog. The CColorDialog will
// be shown as full open and with red as the selected color.
CColorDialog dlg;
dlg.m_cc.Flags |= CC_FULLOPEN | CC_RGBINIT;
dlg.m_cc.rgbResult = RGB(255, 0, 0);
dlg.DoModal();

CColorDialog::OnColorOK

İletişim kutusuna girilen rengi doğrulamak için geçersiz kılın.

virtual BOOL OnColorOK();

Dönüş Değeri

İletişim kutusunun kapatılmaması gerekiyorsa sıfır olmayan; aksi takdirde, girilen rengi kabul etmek için 0.

Açıklamalar

Bu işlevi yalnızca kullanıcının renk iletişim kutusunda seçtiği rengin özel doğrulamasını sağlamak istiyorsanız geçersiz kılın.

Kullanıcı aşağıdaki iki yöntemden birine göre bir renk seçebilir:

  • Renk paletinde bir renge tıklama. Seçili rengin RGB değerleri uygun RGB düzenleme kutularına yansıtılır.

  • RGB düzenleme kutularına değer girme

Geçersiz kılma OnColorOK , uygulamaya özgü herhangi bir nedenle kullanıcının ortak bir renk iletişim kutusuna girdiği rengi reddetmenizi sağlar.

Normalde, çerçeve renklerin varsayılan doğrulamasını sağladığından ve geçersiz bir renk girilirse bir ileti kutusu görüntülediğinden bu işlevi kullanmanız gerekmez.

Bir renk seçimini zorlamak için içinden SetCurrentColor OnColorOK çağırabilirsiniz. Tetiklendikten sonra OnColorOK (yani, kullanıcı renk değişikliğini kabul etmek için Tamam'a tıklar), yeni rengin RGB değerini almak için GetColor'ı çağırabilirsiniz.

Örnek

// 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;
}

CColorDialog::SetCurrentColor

Geçerli renk seçimini clr'de belirtilen renk değerine zorlamak için çağrısından DoModal sonra bu işlevi çağırın.

void SetCurrentColor(COLORREF clr);

Parametreler

Clr
RGB renk değeri.

Açıklamalar

Bu işlev, bir ileti işleyicisi veya OnColorOKiçinden çağrılır. İletişim kutusu clr parametresinin değerine göre kullanıcının seçimini otomatik olarak güncelleştirir.

Örnek

CColorDialog::OnColorOK örneğine bakın.

Ayrıca bkz.

MFC Örnek MDI
MFC Örneği DRAWCLI
CCommonDialog Sınıfı
Hiyerarşi Grafiği