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 CColorDialog
kullanabilirsiniz.
İ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 CColorDialog
bir 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 CColorDialog
hakkında daha fazla bilgi için bkz. Ortak İletişim Kutusu Sınıfları
Devralma Hiyerarşisi
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ı DoModal
yaptı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 OnColorOK
iç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