CBrush
Sınıf
Bir Windows grafik cihaz arabirimi (GDI) fırçası kapsüller.
Sözdizimi
class CBrush : public CGdiObject
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CBrush::CBrush |
Bir CBrush nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CBrush::CreateBrushIndirect |
Bir yapıda belirtilen stil, renk ve desenle bir LOGBRUSH fırça başlatır. |
CBrush::CreateDIBPatternBrush |
Cihazdan bağımsız bit eşlem (DIB) tarafından belirtilen desene sahip bir fırça başlatır. |
CBrush::CreateHatchBrush |
Belirtilen taranmış desen ve renkle bir fırça başlatır. |
CBrush::CreatePatternBrush |
Bit eşlem tarafından belirtilen desene sahip bir fırça başlatır. |
CBrush::CreateSolidBrush |
Belirtilen düz renkle bir fırça başlatır. |
CBrush::CreateSysColorBrush |
Varsayılan sistem rengi olan bir fırça oluşturur. |
CBrush::FromHandle |
Windows HBRUSH nesnesine tanıtıcı CBrush verildiğinde nesneye bir işaretçi döndürür. |
CBrush::GetLogBrush |
Bir LOGBRUSH yapı alır. |
Ortak İşleçler
Veri Akışı Adı | Açıklama |
---|---|
CBrush::operator HBRUSH |
Nesneye bağlı Windows tutamacını CBrush döndürür. |
Açıklamalar
Nesne CBrush
kullanmak için bir CBrush
nesne oluşturup fırça gerektiren herhangi CDC
bir üye işlevine geçirin.
Fırçalar düz, yumurtadan çıkmış veya desenli olabilir.
hakkında CBrush
daha fazla bilgi için bkz . Grafik Nesneleri.
Devralma Hiyerarşisi
CBrush
Gereksinimler
Üstbilgi: afxwin.h
CBrush::CBrush
Bir CBrush
nesne oluşturur.
CBrush();
CBrush(COLORREF crColor);
CBrush(int nIndex, COLORREF crColor);
explicit CBrush(CBitmap* pBitmap);
Parametreler
crColor
Fırçanın ön plan rengini RGB rengi olarak belirtir. Fırça taranırsa, bu parametre taramanın rengini belirtir.
nIndex
Fırçanın tarama stilini belirtir. Aşağıdaki değerlerden herhangi biri olabilir:
HS_BDIAGONAL
45 derecede aşağı doğru tarama (soldan sağa)HS_CROSS
Yatay ve dikey çapraz çizgiHS_DIAGCROSS
45 derecelik çapraz çizgiHS_FDIAGONAL
45 derecede yukarı doğru tarama (soldan sağa)HS_HORIZONTAL
Yatay taramaHS_VERTICAL
Dikey tarama
pBitmap
Fırçanın boyadığı bit eşlemi belirten bir CBitmap
nesneye işaret eder.
Açıklamalar
CBrush
dört aşırı yüklenmiş oluşturucuya sahiptir. Bağımsız değişken içermeyen oluşturucu, kullanılmadan önce başlatılması gereken başlatılmamış CBrush
bir nesne oluşturur.
Oluşturucuyu bağımsız değişken olmadan kullanırsanız, sonuçta CBrush
elde edilen nesneyi , , CreateHatchBrush
CreateBrushIndirect
, CreatePatternBrush
veya CreateDIBPatternBrush
ile CreateSolidBrush
başlatmanız gerekir. Bağımsız değişkenleri alan oluşturuculardan birini kullanırsanız, başka başlatma gerekmez. Bağımsız değişkenlere sahip oluşturucular hatalarla karşılaşılırsa bir özel durum oluşturabilir, ancak bağımsız değişken içermeyen oluşturucu her zaman başarılı olur.
Tek COLORREF
parametreli oluşturucu, belirtilen renge sahip düz bir fırça oluşturur. Renk bir RGB değeri belirtir ve içindeki WINDOWS.H
makroyla RGB
oluşturulabilir.
İki parametreli oluşturucu bir tarama fırçası oluşturur. parametresi, nIndex
taranmış desenin dizinini belirtir. crColor
parametresi rengi belirtir.
Parametresi olan CBitmap
oluşturucu, desenli bir fırça oluşturur. parametresi bir bit eşlem tanımlar. Bit eşlem, , , CBitmap::CreateBitmapIndirect
CBitmap::LoadBitmap
veya CBitmap::CreateCompatibleBitmap
kullanılarak CBitmap::CreateBitmap
oluşturulduğu varsayılır. Doldurma düzeninde kullanılacak bit eşlem için minimum boyut 8 piksel x 8 pikseldir.
Örnek
// CBrush::CBrush.
CBrush brush1; // Must initialize!
brush1.CreateSolidBrush(RGB(0, 0, 255)); // Blue brush.
CRect rc;
GetClientRect(&rc);
ScreenToClient(&rc);
// Save original brush.
CBrush *pOrigBrush = (CBrush *)pDC->SelectObject(&brush1);
// Paint upper left corner with blue brush.
pDC->Rectangle(0, 0, rc.Width() / 2, rc.Height() / 2);
// These constructors throw resource exceptions.
try
{
// CBrush::CBrush(COLORREF crColor)
CBrush brush2(RGB(255, 0, 0)); // Solid red brush.
// CBrush::CBrush(int nIndex, COLORREF crColor)
// Hatched green brush.
CBrush brush3(HS_DIAGCROSS, RGB(0, 255, 0));
// CBrush::CBrush(CBitmap* pBitmap)
CBitmap bmp;
// Load a resource bitmap.
bmp.LoadBitmap(IDB_BRUSH);
CBrush brush4(&bmp);
pDC->SelectObject(&brush2);
// Paint upper right corner with red brush.
pDC->Rectangle(rc.Width() / 2, 0, rc.Width(),
rc.Height() / 2);
pDC->SelectObject(&brush3);
// Paint lower left corner with green hatched brush.
pDC->Rectangle(0, rc.Height() / 2, rc.Width() / 2,
rc.Height());
pDC->SelectObject(&brush4);
// Paint lower right corner with resource brush.
pDC->Rectangle(rc.Width() / 2, rc.Height() / 2,
rc.Width(), rc.Height());
}
catch (CResourceException *e)
{
e->ReportError();
e->Delete();
}
// Reselect original brush into device context.
pDC->SelectObject(pOrigBrush);
CBrush::CreateBrushIndirect
Bir yapıda belirtilen stil, renk ve desenle fırça LOGBRUSH
başlatır.
BOOL CreateBrushIndirect(const LOGBRUSH* lpLogBrush);
Parametreler
lpLogBrush
Fırça hakkında bilgi içeren bir LOGBRUSH
yapıyı gösterir.
Dönüş Değeri
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Açıklamalar
Fırça daha sonra herhangi bir cihaz bağlamı için geçerli fırça olarak seçilebilir.
Tek renkli (1 düzlem, piksel başına 1 bit) bit eşlem kullanılarak oluşturulan fırça, geçerli metin ve arka plan renkleri kullanılarak çizilir. 0 olarak ayarlanmış bir bit ile temsil edilen pikseller geçerli metin rengiyle çizilir. Bit ayarı 1 olarak ayarlanmış pikseller geçerli arka plan rengiyle çizilir.
Örnek
// Initialize a LOGBRUSH structure.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_HATCHED;
logBrush.lbColor = RGB(0, 192, 192);
logBrush.lbHatch = HS_CROSS;
// Declare an uninitialized CBrush ...
CBrush brush;
// ... and initialize it with the LOGBRUSH.
brush.CreateBrushIndirect(&logBrush);
// Select the brush (and perhaps a pen) into
// the device context.
CBrush *pOldBrush = (CBrush *)pDC->SelectObject(&brush);
CPen *pOldPen = (CPen *)pDC->SelectStockObject(BLACK_PEN);
// Have fun!
pDC->Pie(CRect(100, 100, 300, 300), CPoint(0, 0), CPoint(50, 200));
// Restore the original device context objects.
pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);
CBrush::CreateDIBPatternBrush
Cihazdan bağımsız bit eşlem (DIB) tarafından belirtilen desene sahip bir fırça başlatır.
BOOL CreateDIBPatternBrush(
HGLOBAL hPackedDIB,
UINT nUsage);
BOOL CreateDIBPatternBrush(
const void* lpPackedDIB,
UINT nUsage);
Parametreler
hPackedDIB
Paketlenmiş cihazdan bağımsız bit eşlem (DIB) içeren genel bellek nesnesini tanımlar.
nUsage
Veri yapısının bmiColors[]
BITMAPINFO
alanlarının ("paketlenmiş DIB"nin bir parçası) geçerli olarak gerçekleştirilen mantıksal palete açık RGB değerleri veya dizinleri içerip içermediğini belirtir. parametresi aşağıdaki değerlerden biri olmalıdır:
DIB_PAL_COLORS
Renk tablosu 16 bit dizinlerden oluşan bir diziden oluşur.DIB_RGB_COLORS
Renk tablosu değişmez RGB değerleri içerir.
lpPackedDIB
Bit eşlem piksellerini tanımlayan bir bayt dizisinin hemen ardından bir BITMAPINFO
yapıdan oluşan paketlenmiş bir DIB'yi gösterir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Fırça daha sonra tarama işlemlerini destekleyen herhangi bir cihaz bağlamı için seçilebilir.
İki sürüm, DIB'yi işleme yönteminize göre farklılık gösterir:
İlk sürümde, DIB'ye tanıtıcı almak için Genel bellek bloğu ayırmak ve ardından belleği paketlenmiş DIB ile doldurmak için Windows
GlobalAlloc
işlevini çağırırsınız.İkinci sürümde, paketlenmiş DIB için bellek ayırmak için çağrı
GlobalAlloc
yapılması gerekmez.
Paketlenmiş DIB, bit eşlem piksellerini tanımlayan bayt dizisinin hemen ardından bir BITMAPINFO
veri yapısından oluşur. Dolgu deseni olarak kullanılan bit eşlemler 8 piksel x 8 piksel olmalıdır. Bit eşlem daha büyükse, Windows yalnızca bit eşleminin sol üst köşesindeki ilk 8 satıra ve 8 piksel sütununa karşılık gelen bitleri kullanarak bir dolgu deseni oluşturur.
Bir uygulama tek renkli bir cihaz bağlamında iki renkli DIB desen fırçası seçtiğinde, Windows DIB'de belirtilen renkleri yoksayar ve bunun yerine cihaz bağlamının geçerli metin ve arka plan renklerini kullanarak desen fırçasını görüntüler. DIB'nin ilk rengine eşlenen pikseller (DIB renk tablosundaki 0 uzaklığında) metin rengi kullanılarak görüntülenir. İkinci renge eşlenen pikseller (renk tablosundaki 1 uzaklığında) arka plan rengi kullanılarak görüntülenir.
Aşağıdaki Windows işlevlerini kullanma hakkında bilgi için bkz. Windows SDK'sı:
CreateDIBPatternBrush
(Bu işlev yalnızca 3.0'dan önceki Windows sürümleri için yazılmış uygulamalarla uyumluluk için sağlanır; işlevini kullanınCreateDIBPatternBrushPt
.)CreateDIBPatternBrushPt
(Bu işlev Win32 tabanlı uygulamalar için kullanılmalıdır.)
Örnek
// Resource handle to bitmap.
HRSRC hRes;
// Global handles to bitmap resource.
HGLOBAL hData;
void *hLockedData;
CBrush brush;
// Find the resource handle.
hRes = ::FindResource(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDB_BRUSH), RT_BITMAP);
if (hRes != NULL)
{
// Lock and Load (or Load and Lock).
if (((hData = ::LoadResource(AfxGetResourceHandle(),
hRes)) != NULL) &&
((hLockedData = ::LockResource(hData)) != NULL))
{
// Initialize the brush.
brush.CreateDIBPatternBrush((const void *)hLockedData,
DIB_RGB_COLORS);
// Select the brush into the device context.
CBrush *pOldBrush = pDC->SelectObject(&brush);
// Draw.
pDC->Rectangle(50, 50, 200, 200);
// Restore the original device context.
pDC->SelectObject(pOldBrush);
// Free the resource.
::FreeResource(hLockedData);
}
}
CBrush::CreateHatchBrush
Belirtilen taranmış desen ve renkle bir fırça başlatır.
BOOL CreateHatchBrush(
int nIndex,
COLORREF crColor);
Parametreler
nIndex
Fırçanın tarama stilini belirtir. Aşağıdaki değerlerden herhangi biri olabilir:
HS_BDIAGONAL
45 derecede aşağı doğru tarama (soldan sağa)HS_CROSS
Yatay ve dikey çapraz çizgiHS_DIAGCROSS
45 derecelik çapraz çizgiHS_FDIAGONAL
45 derecede yukarı doğru tarama (soldan sağa)HS_HORIZONTAL
Yatay taramaHS_VERTICAL
Dikey tarama
crColor
Fırçanın ön plan rengini RGB rengi (taramaların rengi) olarak belirtir. Daha fazla bilgi için Bkz COLORREF
. Windows SDK'sı.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Fırça daha sonra herhangi bir cihaz bağlamı için geçerli fırça olarak seçilebilir.
Örnek
CBrush brush;
brush.CreateHatchBrush(HS_BDIAGONAL, RGB(255, 0, 0));
CBrush *pOldBrush;
CPen *pOldPen;
pOldBrush = (CBrush *)pDC->SelectObject(&brush);
pOldPen = (CPen *)pDC->SelectStockObject(NULL_PEN);
pDC->Ellipse(CRect(50, 50, 250, 250));
pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);
CBrush::CreatePatternBrush
Bit eşlem tarafından belirtilen desene sahip bir fırça başlatır.
BOOL CreatePatternBrush(CBitmap* pBitmap);
Parametreler
pBitmap
Bit eşlem tanımlar.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Fırça daha sonra tarama işlemlerini destekleyen herhangi bir cihaz bağlamı için seçilebilir. tarafından pBitmap
tanımlanan bit eşlem genellikle , CBitmap::CreateBitmapIndirect
, CBitmap::LoadBitmap
veya CBitmap::CreateCompatibleBitmap
işlevi kullanılarak CBitmap::CreateBitmap
başlatılır.
Dolgu deseni olarak kullanılan bit eşlemler 8 piksel x 8 piksel olmalıdır. Bit eşlem daha büyükse, Windows yalnızca bit eşleminin sol üst köşesindeki ilk 8 satıra ve piksel sütununa karşılık gelen bitleri kullanır.
Desen fırçası ilişkili bit eşlem etkilenmeden silinebilir. Başka bir deyişle bit eşlem herhangi bir sayıda desen fırçası oluşturmak için kullanılabilir.
Tek renkli bit eşlem (1 renk düzlemi, piksel başına 1 bit) kullanılarak oluşturulan fırça, geçerli metin ve arka plan renkleri kullanılarak çizilir. 0 olarak ayarlanmış bit ile temsil edilen pikseller geçerli metin rengiyle çizilir. 1 olarak ayarlanmış bir bit ile temsil edilen pikseller geçerli arka plan rengiyle çizilir.
bir Windows işlevi kullanma CreatePatternBrush
hakkında bilgi için bkz. Windows SDK'sı.
Örnek
// Create a hatched bit pattern.
WORD HatchBits[8] = {0x11, 0x22, 0x44, 0x88, 0x11,
0x22, 0x44, 0x88};
// Use the bit pattern to create a bitmap.
CBitmap bm;
bm.CreateBitmap(8, 8, 1, 1, HatchBits);
// Create a pattern brush from the bitmap.
CBrush brush;
brush.CreatePatternBrush(&bm);
// Select the brush into a device context, and draw.
CBrush *pOldBrush = (CBrush *)pDC->SelectObject(&brush);
pDC->RoundRect(CRect(50, 50, 200, 200), CPoint(10, 10));
// Restore the original brush.
pDC->SelectObject(pOldBrush);
CBrush::CreateSolidBrush
Belirtilen düz renkle bir fırça başlatır.
BOOL CreateSolidBrush(COLORREF crColor);
Parametreler
crColor
Fırçanın COLORREF
rengini belirten bir yapı. Renk bir RGB değeri belirtir ve içindeki WINDOWS.H
makroyla RGB
oluşturulabilir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Fırça daha sonra herhangi bir cihaz bağlamı için geçerli fırça olarak seçilebilir.
Bir uygulama tarafından CreateSolidBrush
oluşturulan fırçayı kullanmayı bitirdiğinde, cihaz bağlamından fırçayı seçmelidir.
Örnek
örneğine CBrush::CBrush
bakın.
CBrush::CreateSysColorBrush
Fırça rengini başlatır.
BOOL CreateSysColorBrush(int nIndex);
Parametreler
nIndex
Bir renk dizini belirtir. Bu değer, 21 pencere öğesinden birini boyamak için kullanılan renge karşılık gelir. Değerlerin listesi için Windows SDK'sında bakın GetSysColor
.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Fırça daha sonra herhangi bir cihaz bağlamı için geçerli fırça olarak seçilebilir.
Bir uygulama tarafından CreateSysColorBrush
oluşturulan fırçayı kullanmayı bitirdiğinde, cihaz bağlamından fırçayı seçmelidir.
Örnek
// Declare a CBrush and initialize to a system color.
CBrush brush;
brush.CreateSysColorBrush(COLOR_BTNFACE);
// Select the brush into the device context.
CBrush *pOldBrush = (CBrush *)pDC->SelectObject(&brush);
// Draw.
CRect rect(50, 50, 150, 150);
pDC->Rectangle(rect);
// Reselect the original brush.
pDC->SelectObject(pOldBrush);
CBrush::FromHandle
Windows HBRUSH
nesnesine tanıtıcı CBrush
verildiğinde nesneye bir işaretçi döndürür.
static CBrush* PASCAL FromHandle(HBRUSH hBrush);
Parametreler
hBrush
Bir Windows GDI fırçasına TANıTıCı.
Dönüş Değeri
Başarılı olursa nesne CBrush
işaretçisi; aksi takdirde NULL
.
Açıklamalar
Bir CBrush
nesne tanıtıcıya zaten bağlı değilse, geçici CBrush
bir nesne oluşturulur ve eklenir. Bu geçici CBrush
nesne yalnızca uygulamanın olay döngüsünde boşta kalma süresine sahip olduğu bir sonraki zamana kadar geçerlidir. Şu anda tüm geçici grafik nesneleri silinir. Başka bir deyişle, geçici nesne yalnızca bir pencere iletisinin işlenmesi sırasında geçerlidir.
Grafik nesnelerini kullanma hakkında daha fazla bilgi için bkz . Windows SDK'sında Grafik Nesneleri .
Örnek
CBrush::CBrush örneğine bakın.
CBrush::GetLogBrush
Yapıyı almak için bu üye işlevini çağırın LOGBRUSH
.
int GetLogBrush(LOGBRUSH* pLogBrush);
Parametreler
pLogBrush
Fırça hakkında bilgi içeren bir LOGBRUSH
yapıyı gösterir.
Dönüş Değeri
İşlev başarılı olursa ve pLogBrush
geçerli bir işaretçiyse, dönüş değeri arabelleğe depolanan bayt sayısıdır.
İşlev başarılı olursa ve pLogBrush
ise NULL
, dönüş değeri işlevin arabelleğe depoacağı bilgileri tutmak için gereken bayt sayısıdır.
İşlev başarısız olursa, dönüş değeri 0 olur.
Açıklamalar
Yapı, LOGBRUSH
fırçanın stilini, rengini ve desenini tanımlar.
Örneğin, bir bit eşlemin belirli rengi veya deseni ile eşleştirmek için çağrısında GetLogBrush
bulunur.
Örnek
// Example for CBrush::GetLogBrush
LOGBRUSH logbrush;
brushExisting.GetLogBrush(&logbrush);
CBrush brushOther(logbrush.lbColor);
// Another example
// Declare a LOGBRUSH
LOGBRUSH logBrush;
// Using a bitmap for this example.
// The bitmap should be a project resource.
CBitmap bm;
bm.LoadBitmap(IDB_BRUSH);
try
{
// Create a brush
CBrush brush1(&bm);
// Use GetLogBrush to fill the LOGBRUSH structure
brush1.GetLogBrush(&logBrush);
// Create a second brush using the LOGBRUSH data
CBrush brush2;
brush2.CreateBrushIndirect(&logBrush);
// Use the first brush
CBrush *pOldBrush = (CBrush *)pDC->SelectObject(&brush1);
pDC->Rectangle(CRect(50, 50, 150, 150));
// The second brush has the specified characteristics
// of the first brush
pDC->SelectObject(&brush2);
pDC->Ellipse(200, 50, 300, 150);
// Reselect the original brush
pDC->SelectObject(pOldBrush);
}
catch (CResourceException *e)
{
e->ReportError();
e->Delete();
}
CBrush::operator HBRUSH
Nesnenin ekli Windows GDI tutamacını CBrush
almak için bu işleci kullanın.
operator HBRUSH() const;
Dönüş Değeri
Başarılı olursa, nesnesi tarafından temsil edilen Windows GDI nesnesine bir CBrush
tanıtıcı; aksi takdirde NULL
.
Açıklamalar
Bu işleç, bir nesnenin doğrudan kullanımını destekleyen bir HBRUSH
atama işlecidir.
Grafik nesnelerini kullanma hakkında daha fazla bilgi için bkz . Windows SDK'sında Grafik Nesneleri .
Örnek
RECT rc = {50, 50, 200, 200};
Rectangle(pDC->GetSafeHdc(), rc.left, rc.top, rc.right, rc.bottom);
// The Win32 call to FillRect requires an HBRUSH.
// The HBRUSH operator casts the CBrush object
// to the required type.
CBrush brush;
brush.CreateSysColorBrush(COLOR_BTNFACE);
FillRect(pDC->GetSafeHdc(), &rc, (HBRUSH)brush);
Ayrıca bkz.
MFC Örneği PROPDLG
CGdiObject
Sınıf
Hiyerarşi Grafiği
CBitmap
Sınıf
CDC
Sınıf