CBitmapButton Sınıfı
Metin yerine bit eşlemli görüntülerle etiketlenmiş basma düğmesi denetimleri oluşturur.
Sözdizimi
class CBitmapButton : public CButton
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CBitmapButton::CBitmapButton | Bir CBitmapButton nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CBitmapButton::AutoLoad | İletişim kutusundaki bir düğmeyi sınıfın CBitmapButton bir nesnesiyle ilişkilendirir, bit eşlemleri ada göre yükler ve düğmeyi bit eşlem sığacak şekilde boyutlandırir. |
CBitmapButton::LoadBitmaps | Uygulamanın kaynak dosyasından bir veya daha fazla adlandırılmış bit eşlem kaynağı yükleyip bit eşlemleri nesneye ekleyerek nesnesini başlatır. |
CBitmapButton::SizeToContent | Bit eşlemi yerleştirmek için düğmeyi boyutlandırın. |
Açıklamalar
CBitmapButton
nesneler, bir düğmenin varsayabileceği farklı durumların görüntülerini içeren en fazla dört bit eşlem içerir: yukarı (veya normal), aşağı (veya seçili), odaklanmış ve devre dışı. Yalnızca ilk bit eşlem gereklidir; diğerleri isteğe bağlıdır.
Bit eşlem düğmesi görüntüleri, resmin etrafındaki kenarlık ve resmin kendisini içerir. Kenarlık genellikle düğmenin durumunun gösterilmesinde bir rol oynar. Örneğin, odaklanmış durumun bit eşlemi genellikle yukarı durum için olan bit eşlem gibidir, ancak kenarlıktan kesikli bir dikdörtgenin başlangıcı veya kenarlıkta kalın bir düz çizgi vardır. Devre dışı durumdaki bit eşlem genellikle yukarı durum için olana benzer ancak daha düşük karşıtlık (soluk veya gri menü seçimi gibi).
Bu bit eşlemler herhangi bir boyutta olabilir, ancak tümü yukarı durum için bit eşlem ile aynı boyuttaymış gibi değerlendirilir.
Çeşitli uygulamalar, bit eşlem görüntülerinin farklı bileşimlerini talep eder:
Yukarı | Aşağı | Odaklı | Devre dışı | Uygulama |
---|---|---|---|---|
× | Bit eşlem | |||
× | × | WS_TABSTOP stili olmayan düğme | ||
× | × | × | × | Tüm durumları içeren iletişim kutusu düğmesi |
× | × | × | WS_TABSTOP stiline sahip iletişim kutusu düğmesi |
Bit eşlem düğmesi denetimi oluştururken, düğmenin sahip tarafından çizildiğini belirtmek için BS_OWNERDRAW stilini ayarlayın. Bu, Windows'un düğme için WM_MEASUREITEM ve WM_DRAWITEM iletileri göndermesine neden olur; çerçeve bu iletileri işler ve düğmenin görünümünü sizin için yönetir.
Pencerenin istemci alanında bit eşlem düğmesi denetimi oluşturmak için
Düğme için bir-dört bit eşlem görüntüsü oluşturun.
CBitmapButton nesnesini oluşturma.
Create işlevini çağırarak Windows düğmesi denetimini oluşturun ve nesneye
CBitmapButton
ekleyin.Bit eşlem düğmesi oluşturulduğunda bit eşlem kaynaklarını yüklemek için LoadBitmaps üye işlevini çağırın.
İletişim kutusuna bit eşlem düğmesi denetimi eklemek için
Düğme için bir-dört bit eşlem görüntüsü oluşturun.
Bit eşlem düğmesinin olmasını istediğiniz konuma sahip çiz düğmesinin yerleştirildiği bir iletişim kutusu şablonu oluşturun. Şablondaki düğmenin boyutu önemli değildir.
Düğmenin resim yazısını "MYIMAGE" gibi bir değere ayarlayın ve düğme için IDC_MYIMAGE gibi bir simge tanımlayın.
Uygulamanızın kaynak betiğinde, düğme için oluşturulan görüntülerin her birine 3. adımda düğme başlığı için kullanılan dizeye "U", "D", "F" veya "X" (yukarı, aşağı, odaklanmış ve devre dışı) harflerinden birini ekleyerek oluşturulan bir kimlik verin. Örneğin, "MYIMAGE" düğme başlığı için kimlikler " MYIMAGEU," " MYIMAGED," " MYIMAGEF" ve " MYIMAGEX" olur. Bit eşlemlerinizin kimliğini çift tırnak içinde belirtmeniz gerekir . Aksi takdirde kaynak düzenleyicisi kaynağa bir tamsayı atar ve görüntü yüklenirken MFC başarısız olur.
Uygulamanızın iletişim kutusunda (öğesinden
CDialog
türetilir) birCBitmapButton
üye nesnesi ekleyin.Nesnenin
CDialog
OnInitDialog yordamında, düğmeninCBitmapButton
denetim kimliğini ve nesne işaretçisini parametre olarak kullanarak nesneninCDialog
AutoLoad işlevini çağırınthis
.
Bir bit eşlem düğmesi denetimi tarafından üst öğesine gönderilen BN_CLICKED gibi Windows bildirim iletilerini işlemek istiyorsanız (genellikle öğesinden CDialog
türetilen bir sınıf), türetilmiş nesneye CDialog
her ileti için bir ileti eşleme girdisi ve ileti işleyicisi üye işlevi ekleyin. Bir CBitmapButton
nesne tarafından gönderilen bildirimler, CButton nesnesi tarafından gönderilen bildirimlerle aynıdır.
CToolBar sınıfı bit eşlem düğmelerine farklı bir yaklaşım benimser.
hakkında CBitmapButton
daha fazla bilgi için bkz . Denetimler.
Devralma Hiyerarşisi
CBitmapButton
Gereksinimler
Üst bilgi: afxext.h
CBitmapButton::AutoLoad
İletişim kutusundaki bir düğmeyi sınıfın CBitmapButton
bir nesnesiyle ilişkilendirir, bit eşlemleri ada göre yükler ve düğmeyi bit eşlem sığacak şekilde boyutlandırir.
BOOL AutoLoad(
UINT nID,
CWnd* pParent);
Parametreler
Nıd
Düğmenin denetim kimliği.
pParent
Düğmenin sahibi olan nesnenin işaretçisi.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
AutoLoad
bir iletişim kutusundaki sahip çizim düğmesini bit eşlem düğmesi olarak başlatmak için işlevini kullanın. Bu işlevi kullanma yönergeleri sınıfının açıklamalarında CBitmapButton
yer alır.
Örnek
CBitmapButton myButton;
// Initialize the owner-drawn button with the id IDC_MYBUTTON as a bitmap
// button. This code is used in the OnInitDialog handler of my dialog.
myButton.AutoLoad(IDC_MYBUTTON, this);
CBitmapButton::CBitmapButton
Bir CBitmapButton
nesnesi oluşturur.
CBitmapButton();
Açıklamalar
C++ CBitmapButton
nesnesini oluşturduktan sonra, Windows düğmesi denetimini oluşturmak ve nesneye eklemek için CButton::Create öğesini çağırın CBitmapButton
.
Örnek
// Declare a bitmap button object on the stack.
CBitmapButton myButton;
// Declare a bitmap button object on the heap.
CBitmapButton *pmyButton = new CBitmapButton;
CBitmapButton::LoadBitmaps
Bu işlevi, kaynak adlarıyla veya kimlik numaralarıyla tanımlanan bit eşlem görüntülerini yüklemek istediğinizde veya örneğin, bir iletişim kutusunun parçası olmayan bir bit eşlem düğmesi oluşturduğunuz için işlevini kullanamıyorsanız AutoLoad
kullanın.
BOOL LoadBitmaps(
LPCTSTR lpszBitmapResource,
LPCTSTR lpszBitmapResourceSel = NULL,
LPCTSTR lpszBitmapResourceFocus = NULL,
LPCTSTR lpszBitmapResourceDisabled = NULL);
BOOL LoadBitmaps(
UINT nIDBitmapResource,
UINT nIDBitmapResourceSel = 0,
UINT nIDBitmapResourceFocus = 0,
UINT nIDBitmapResourceDisabled = 0);
Parametreler
lpszBitmapResource
Bit eşlem düğmesinin normal veya "yukarı" durumunun bit eşlem adını içeren null olarak sonlandırılan dizeye işaret eder. Gerekli.
lpszBitmapResourceSel
Bit eşlem düğmesinin seçili veya "aşağı" durumunun bit eşlem adını içeren null olarak sonlandırılan dizeye işaret eder. NULL olabilir.
lpszBitmapResourceFocus
Bit eşlem düğmesinin odaklanmış durumunun bit eşlem adını içeren null olarak sonlandırılan dizeyi gösterir. NULL olabilir.
lpszBitmapResourceDisabled
Bit eşlem düğmesinin devre dışı durumunun bit eşlem adını içeren null olarak sonlandırılan dizeyi gösterir. NULL olabilir.
nIDBitmapResource
Bit eşlem düğmesinin normal veya "yukarı" durumu için bit eşlem kaynağının kaynak kimliği numarasını belirtir. Gerekli.
nIDBitmapResourceSel
Bit eşlem düğmesinin seçili veya "aşağı" durumu için bit eşlem kaynağının kaynak kimliği numarasını belirtir. 0 olabilir.
nIDBitmapResourceFocus
Bit eşlem düğmesinin odaklanmış durumu için bit eşlem kaynağının kaynak kimliği numarasını belirtir. 0 olabilir.
nIDBitmapResourceDisabled
Bit eşlem düğmesinin devre dışı durumu için bit eşlem kaynağının kaynak kimliği numarasını belirtir. 0 olabilir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
CRect(10, 10, 100, 100), pParentWnd, 1);
// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);
CBitmapButton::SizeToContent
Bit eşlem düğmesini bit eşlem boyutuna yeniden boyutlandırmak için bu işlevi çağırın.
void SizeToContent();
Örnek
CBitmapButton *pmyButton = new CBitmapButton();
// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
CRect(10, 10, 100, 100), pParentWnd, 1);
// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);
// Resize the button to be the size of the bitmaps.
pmyButton->SizeToContent();