INFO: Using CBitmapButton in CDialogBar and CFormView (98041)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++ for Windows, 16-bit edition 1.0
    • Microsoft Visual C++ for Windows, 16-bit edition 1.5
    • Microsoft Visual C++ for Windows, 16-bit edition 1.51
    • Microsoft Visual C++ for Windows, 16-bit edition 1.52
    • Microsoft Visual C++, 32-bit Editions 1.0
    • Microsoft Visual C++, 32-bit Editions 2.0
    • Microsoft Visual C++, 32-bit Editions 2.1
    • Microsoft Visual C++, 32-bit Editions 2.2
    • Microsoft Visual C++, 32-bit Editions 4.0

This article was previously published under Q98041
To attach a CBitmapButton object to a button in a dialog box, call the CBitmapButton::AutoLoad() function in the OnInitDialog() function for the dialog box. Note, that the CDialogBar and CFormView classes are not derived from the CDialog class and do not have an OnInitDialog() function.

To use a CBitmapButton with a CDialogBar, override the Create() function and call AutoLoad() after calling the base class version of Create(). In the following code, which demonstrates this process, the CMyDialogBar class is derived from CDialogBar and m_MyBitmapButton is a CBitmapButton member of CMyDialogBar:
   BOOL CMyDialogBar::Create(CWnd* pParent, UINT nIDTemplate,
                             UINT nStyle, UINT nID)
   {
      // Call base class create to create the dialog bar window.
      BOOL bReturn = CDialogBar::Create(pParent, nIDTemplate,
                                        nStyle, nID);
      // Load bitmaps for the button and attach
      // to the control in the dialog box.
      if (bReturn)
         m_MyBitmapButton.AutoLoad(IDC_MYBITMAPBUTTON, this);

      return bReturn;
   }
		
To use a CBitmapButton with a CFormView, call AutoLoad() in the CFormView OnInitialUpdate() function. In the following code, which demonstrates this, the CMyFormView class is derived from CFormView and m_MyBitmapButton is a CBitmapButton member of CMyFormView:
   void CMyFormView::OnInitialUpdate()
   {
      CFormView::OnInitialUpdate();
      m_MyBitmapButton.AutoLoad(IDC_MYBITMAPBUTTON, this);
   }
		

SUMMARY


Modification Type:MajorLast Reviewed:12/11/2003
Keywords:kbDocView kbinfo kbMFCCtrlBar KbUIDesign KB98041