Kelas CColorDialog
Memungkinkan Anda memasukkan kotak dialog pemilihan warna ke dalam aplikasi Anda.
Sintaks
class CColorDialog : public CCommonDialog
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CColorDialog::CColorDialog | Membuat CColorDialog objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CColorDialog::D oModal | Menampilkan kotak dialog warna dan memungkinkan pengguna membuat pilihan. |
CColorDialog::GetColor | Mengembalikan struktur yang COLORREF berisi nilai warna yang dipilih. |
CColorDialog::GetSavedCustomColors | Mengambil warna kustom yang dibuat oleh pengguna. |
CColorDialog::SetCurrentColor | Memaksa pilihan warna saat ini ke warna yang ditentukan. |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
CColorDialog::OnColorOK | Ambil alih untuk memvalidasi warna yang dimasukkan ke dalam kotak dialog. |
Anggota Data Publik
Nama | Deskripsi |
---|---|
CColorDialog::m_cc | Struktur yang digunakan untuk mengkustomisasi pengaturan kotak dialog. |
Keterangan
Objek CColorDialog
adalah kotak dialog dengan daftar warna yang ditentukan untuk sistem tampilan. Pengguna dapat memilih atau membuat warna tertentu dari daftar, yang kemudian dilaporkan kembali ke aplikasi saat kotak dialog keluar.
Untuk membuat CColorDialog
objek, gunakan konstruktor yang disediakan atau dapatkan kelas baru dan gunakan konstruktor kustom Anda sendiri.
Setelah kotak dialog dibuat, Anda dapat mengatur atau mengubah nilai apa pun dalam struktur m_cc untuk menginisialisasi nilai kontrol kotak dialog. Struktur m_cc berjenis CHOOSECOLOR.
Setelah menginisialisasi kontrol kotak dialog, panggil DoModal
fungsi anggota untuk menampilkan kotak dialog dan izinkan pengguna untuk memilih warna. DoModal
mengembalikan pilihan pengguna dari tombol OK (IDOK) atau Batal (IDCANCEL) kotak dialog.
Jika DoModal
mengembalikan IDOK, Anda dapat menggunakan salah CColorDialog
satu fungsi anggota untuk mengambil input informasi oleh pengguna.
Anda dapat menggunakan fungsi Windows CommDlgExtendedError untuk menentukan apakah terjadi kesalahan selama inisialisasi kotak dialog dan untuk mempelajari selengkapnya tentang kesalahan tersebut.
CColorDialog
bergantung pada file COMMDLG.DLL yang dikirim dengan Windows versi 3.1 dan yang lebih baru.
Untuk mengkustomisasi kotak dialog, dapatkan kelas dari CColorDialog
, sediakan templat dialog kustom, dan tambahkan peta pesan untuk memproses pesan pemberitahuan dari kontrol yang diperluas. Setiap pesan yang tidak diolah harus diteruskan ke kelas dasar.
Menyesuaikan fungsi kait tidak diperlukan.
Catatan
Pada beberapa instalasi CColorDialog
objek tidak akan ditampilkan dengan latar belakang abu-abu jika Anda telah menggunakan kerangka kerja untuk membuat objek lain CDialog
berwarna abu-abu.
Untuk informasi selengkapnya tentang menggunakan CColorDialog
, lihat Kelas Dialog Umum
Hierarki Warisan
CColorDialog
Persyaratan
Header: afxdlgs.h
CColorDialog::CColorDialog
Membuat CColorDialog
objek.
CColorDialog(
COLORREF clrInit = 0,
DWORD dwFlags = 0,
CWnd* pParentWnd = NULL);
Parameter
clrInit
Pilihan warna default. Jika tidak ada nilai yang ditentukan, defaultnya adalah RGB(0,0,0) (hitam).
dwFlags
Sekumpulan bendera yang mengkustomisasi fungsi dan tampilan kotak dialog. Untuk informasi selengkapnya, lihat struktur CHOOSECOLOR di Windows SDK.
pParentWnd
Penunjuk ke jendela induk atau pemilik kotak dialog.
Contoh
// 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
Panggil fungsi ini untuk menampilkan kotak dialog warna umum Windows dan perbolehkan pengguna memilih warna.
virtual INT_PTR DoModal();
Tampilkan Nilai
IDOK atau IDCANCEL. Jika IDCANCEL dikembalikan, panggil fungsi Windows CommDlgExtendedError untuk menentukan apakah terjadi kesalahan.
IDOK dan IDCANCEL adalah konstanta yang menunjukkan apakah pengguna memilih tombol OK atau Batal.
Keterangan
Jika Anda ingin menginisialisasi berbagai opsi kotak dialog warna dengan mengatur anggota struktur m_cc , Anda harus melakukan ini sebelum memanggil DoModal
tetapi setelah objek kotak dialog dibangun.
Setelah memanggil DoModal
, Anda dapat memanggil fungsi anggota lain untuk mengambil pengaturan atau input informasi oleh pengguna ke dalam kotak dialog.
Contoh
Lihat contoh untuk CColorDialog::CColorDialog.
CColorDialog::GetColor
Panggil fungsi ini setelah memanggil DoModal
untuk mengambil informasi tentang warna yang dipilih pengguna.
COLORREF GetColor() const;
Tampilkan Nilai
Nilai COLORREF yang berisi informasi RGB untuk warna yang dipilih dalam kotak dialog warna.
Contoh
// 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
objek mengizinkan pengguna, selain memilih warna, untuk menentukan hingga 16 warna kustom.
static COLORREF* PASCAL GetSavedCustomColors();
Tampilkan Nilai
Penunjuk ke array nilai warna 16 RGB yang menyimpan warna kustom yang dibuat oleh pengguna.
Keterangan
Fungsi GetSavedCustomColors
anggota menyediakan akses ke warna-warna ini. Warna-warna ini dapat diambil setelah DoModal mengembalikan IDOK.
Masing-masing dari 16 nilai RGB dalam array yang dikembalikan diinisialisasi ke RGB(255.255.255) (putih). Warna kustom yang dipilih oleh pengguna hanya disimpan di antara pemanggilan kotak dialog dalam aplikasi. Jika Anda ingin menyimpan warna-warna ini di antara pemanggilan aplikasi, Anda harus menyimpannya dengan cara lain, seperti dalam inisialisasi (. INI) file.
Contoh
// 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
Struktur jenis CHOOSECOLOR, yang anggotanya menyimpan karakteristik dan nilai kotak dialog.
CHOOSECOLOR m_cc;
Keterangan
Setelah membuat CColorDialog
objek, Anda dapat menggunakan m_cc untuk mengatur berbagai aspek kotak dialog sebelum memanggil fungsi anggota DoModal .
Contoh
// 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
Ambil alih untuk memvalidasi warna yang dimasukkan ke dalam kotak dialog.
virtual BOOL OnColorOK();
Tampilkan Nilai
Bukan nol jika kotak dialog tidak boleh dihentikan; jika tidak, 0 untuk menerima warna yang dimasukkan.
Keterangan
Ambil alih fungsi ini hanya jika Anda ingin memberikan validasi kustom warna yang dipilih pengguna dalam kotak dialog warna.
Pengguna dapat memilih warna dengan salah satu dari dua metode berikut:
Mengklik warna pada palet warna. Nilai RGB warna yang dipilih kemudian tercermin dalam kotak edit RGB yang sesuai.
Memasukkan nilai dalam kotak edit RGB
Penimpaan OnColorOK
memungkinkan Anda menolak warna yang dimasukkan pengguna ke dalam kotak dialog warna umum karena alasan khusus aplikasi apa pun.
Biasanya, Anda tidak perlu menggunakan fungsi ini karena kerangka kerja menyediakan validasi warna default dan menampilkan kotak pesan jika warna yang tidak valid dimasukkan.
Anda dapat memanggil SetCurrentColor dari dalam OnColorOK
untuk memaksa pilihan warna. Setelah OnColorOK
diaktifkan (yaitu, pengguna mengklik OK untuk menerima perubahan warna), Anda dapat memanggil GetColor untuk mendapatkan nilai RGB dari warna baru.
Contoh
// 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
Panggil fungsi ini setelah memanggil DoModal
untuk memaksa pemilihan warna saat ini ke nilai warna yang ditentukan dalam clr.
void SetCurrentColor(COLORREF clr);
Parameter
Clr
Nilai warna RGB.
Keterangan
Fungsi ini dipanggil dari dalam handler pesan atau OnColorOK
. Kotak dialog akan secara otomatis memperbarui pilihan pengguna berdasarkan nilai parameter clr .
Contoh
Lihat contoh untuk CColorDialog::OnColorOK.
Lihat juga
MFC Sampel MDI
SAMPEL MFC DRAWCLI
Kelas CCommonDialog
Bagan Hierarki