home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK11 / MFC / SAMPLES / CTRLTEST / BBUTTON.CP$ / bbutton
Encoding:
Text File  |  1992-03-16  |  2.9 KB  |  111 lines

  1. // bbutton.cpp : bitmap button test
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and Microsoft
  9. // QuickHelp documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include "ctrltest.h"
  14.  
  15. /////////////////////////////////////////////////////////////////////////////
  16. // BitmapButton Test dialog #1
  17.  
  18. // In this example we pass the bitmap resource names in the constructor
  19. //  for the buttons.  OnInitDialog is used to Subclass the buttons
  20. //  so the dialog controls get attached to the MFC WndProc for C++
  21. //  message map dispatch.
  22.  
  23. class CBMTest1Dlg : public CModalDialog
  24. {
  25. protected:
  26.     // construct
  27.     CBitmapButton button1, button2;
  28. public:
  29.     CBMTest1Dlg()
  30.         : CModalDialog(IDM_TEST_BITMAP_BUTTON1),
  31.             button1("Image1Up", "Image1Down", "Image1Focus"),
  32.             button2("Image2Up", "Image2Down", "Image2Focus")
  33.         { }
  34.  
  35.     BOOL OnInitDialog();
  36.     void OnOK();
  37. };
  38.  
  39. BOOL CBMTest1Dlg::OnInitDialog()
  40. {
  41.     // each dialog control has special bitmaps
  42.     VERIFY(button1.SubclassDlgItem(IDOK, this));
  43.     button1.SizeToContent();
  44.     VERIFY(button2.SubclassDlgItem(IDCANCEL, this));
  45.     button2.SizeToContent();
  46.  
  47.     return TRUE;
  48. }
  49.  
  50. void CBMTest1Dlg::OnOK()
  51. {
  52.     EndDialog(IDOK);
  53. }
  54.  
  55. /////////////////////////////////////////////////////////////////////////////
  56. // BitmapButton Test dialog #2
  57.  
  58. // In this example we use the CBitmapButton AutoLoad member function.
  59. //  Autoload uses the text/title of the button as the base resource name.
  60. //  For this trivial example the buttons are called "OK" and "CANCEL",
  61. //  which use the bitmaps "OKU", "OKD", "OKF", "CANCELU", "CANCELD"
  62. //  and "CANCELF" respectively for the up, down and focused images.
  63.  
  64. #define ID_BUTTON_MIN       IDOK
  65. #define N_BUTTONS   (IDCANCEL - ID_BUTTON_MIN + 1)
  66.  
  67. class CBMTest2Dlg : public CModalDialog
  68. {
  69. protected:
  70.     // construct
  71.     CBitmapButton buttons[N_BUTTONS];
  72.         // array of buttons constructed with no attached bitmap images
  73. public:
  74.     CBMTest2Dlg()
  75.         : CModalDialog(IDM_TEST_BITMAP_BUTTON2)
  76.         { }
  77.  
  78.     BOOL OnInitDialog();
  79.     void OnOK();
  80. };
  81.  
  82. BOOL CBMTest2Dlg::OnInitDialog()
  83. {
  84.     // load bitmaps for all the bitmap buttons (does SubclassButton as well)
  85.     for (int i = 0; i < N_BUTTONS; i++)
  86.         VERIFY(buttons[i].AutoLoad(ID_BUTTON_MIN + i, this));
  87.     return TRUE;
  88. }
  89.  
  90. void CBMTest2Dlg::OnOK()
  91. {
  92.     EndDialog(IDOK);
  93. }
  94.  
  95. /////////////////////////////////////////////////////////////////////////////
  96. // Test driver routines
  97.  
  98. void CTestWindow::OnTestBitmapButton1()
  99. {
  100.     CBMTest1Dlg dlg;
  101.     dlg.DoModal();
  102. }
  103.  
  104. void CTestWindow::OnTestBitmapButton2()
  105. {
  106.     CBMTest2Dlg dlg;
  107.     dlg.DoModal();
  108. }
  109.  
  110. /////////////////////////////////////////////////////////////////////////////
  111.