Aracılığıyla paylaş


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

Ad Tanım
CBitmapButton::CBitmapButton Bir CBitmapButton nesne oluşturur.

Genel Yöntemler

Ad Tanım
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
× Bitmap
× × 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

  1. Düğme için bir-dört bit eşlem görüntüsü oluşturun.

  2. CBitmapButton nesnesini oluşturma.

  3. Create işlevini çağırarak Windows düğmesi denetimini oluşturun ve nesneye CBitmapButton ekleyin.

  4. 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

  1. Düğme için bir-dört bit eşlem görüntüsü oluşturun.

  2. 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.

  3. Düğmenin başlık "MYIMAGE" gibi bir değere ayarlayın ve düğme için IDC_MYIMAGE gibi bir simge tanımlayın.

  4. Uygulamanızın kaynak betiğinde, düğme için oluşturulan görüntülerin her birine 3. adımda başlık düğme için kullanılan dizeye "U", "D", "F" veya "X" harflerinden birini (yukarı, aşağı, odaklanmış ve devre dışı) ekleyerek oluşturulan bir kimlik verin. Örneğin, " MYIMAGE" başlık düğme 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.

  5. Uygulamanızın iletişim kutusunda (öğesinden CDialogtüretilir) bir CBitmapButton üye nesnesi ekleyin.

  6. Nesnenin CDialogOnInitDialog yordamında, düğmenin CBitmapButton denetim kimliğini ve nesne işaretçisini parametre olarak kullanarak nesnenin CDialog 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 CDialogtüretilen bir sınıf), türetilmiş nesneye CDialogher 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 CBitmapButtondaha fazla bilgi için bkz . Denetimler.

Devralma Hiyerarşisi

Cobject

Ccmdtarget

Cwnd

Cbutton

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.

İade 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.

İade 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();

Ayrıca bkz.

MFC Örneği CTRLTEST
CButton Sınıfı
Hiyerarşi Grafiği