Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 CBrushdaha 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_BDIAGONAL45 derecede aşağı doğru tarama (soldan sağa)HS_CROSSYatay ve dikey çapraz çizgiHS_DIAGCROSS45 derecelik çapraz çizgiHS_FDIAGONAL45 derecede yukarı doğru tarama (soldan sağa)HS_HORIZONTALYatay taramaHS_VERTICALDikey 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 , , CreateHatchBrushCreateBrushIndirect, CreatePatternBrushveya CreateDIBPatternBrushile CreateSolidBrushbaş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.Hmakroyla 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::CreateBitmapIndirectCBitmap::LoadBitmapveya CBitmap::CreateCompatibleBitmapkullanılarak CBitmap::CreateBitmapoluş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_COLORSRenk tablosu 16 bit dizinlerden oluşan bir diziden oluşur.DIB_RGB_COLORSRenk 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
GlobalAllocişlevini çağırırsınız.İkinci sürümde, paketlenmiş DIB için bellek ayırmak için çağrı
GlobalAllocyapı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_BDIAGONAL45 derecede aşağı doğru tarama (soldan sağa)HS_CROSSYatay ve dikey çapraz çizgiHS_DIAGCROSS45 derecelik çapraz çizgiHS_FDIAGONAL45 derecede yukarı doğru tarama (soldan sağa)HS_HORIZONTALYatay taramaHS_VERTICALDikey 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::LoadBitmapveya CBitmap::CreateCompatibleBitmap işlevi kullanılarak CBitmap::CreateBitmapbaş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 CreatePatternBrushhakkı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.Hmakroyla 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 CreateSolidBrusholuşturulan fırçayı kullanmayı bitirdiğinde, cihaz bağlamından fırçayı seçmelidir.
Örnek
örneğine CBrush::CBrushbakı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 CreateSysColorBrusholuş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