⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buttonsdlg.cpp

📁 Visual_C++[1].NET_Bible1 Visual_C++宝典书中的全部源码
💻 CPP
字号:
// ButtonsDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ControlsDemo.h"
#include "ButtonsDlg.h"

// CButtonsDlg dialog
IMPLEMENT_DYNAMIC(CButtonsDlg, CDialog)
CButtonsDlg::CButtonsDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CButtonsDlg::IDD, pParent)
{
}

CButtonsDlg::~CButtonsDlg()
{
}

void CButtonsDlg::DoDataExchange(CDataExchange* pDX)
{
  CDialog::DoDataExchange(pDX);
  DDX_Radio(pDX, IDC_BTN_YES, m_iAnswer);
  DDX_Check(pDX, IDC_CHECK1, m_iCheck1);
  DDX_Check(pDX, IDC_CHECK2, m_iCheck2);
  DDX_Check(pDX, IDC_CHECK3, m_iCheck3);

  DDX_Control(pDX, IDC_BUTTON1, m_fancyButton);
  DDX_Control(pDX, IDC_DISABLED, m_btnDisabled);
}


BEGIN_MESSAGE_MAP(CButtonsDlg, CDialog)
  ON_BN_CLICKED(IDC_CREDITCARD, OnBnClickedCreditcard)
  ON_BN_CLICKED(IDC_CASH, OnBnClickedCash)
  ON_BN_CLICKED(IDC_CHECK, OnBnClickedCheck)
  ON_BN_CLICKED(IDOK, OnBnClickedOk)
  ON_BN_CLICKED(IDC_DISABLED, OnBnClickedDisabled)
  ON_BN_CLICKED(IDC_DISABLED2, OnBnClickedDisabled2)
  ON_BN_CLICKED(IDC_GET_RADIOBUTTON_VALUES, OnBnClickedGetRadiobuttonValues)
  ON_BN_CLICKED(IDC_GET_CHECKBOX_VALUES, OnBnClickedGetCheckboxValues)
END_MESSAGE_MAP()


void CButtonsDlg::OnBnClickedCreditcard()
{
  CWnd* pWnd;

  pWnd = GetDlgItem(IDC_CARDNUMBER);
  ASSERT(pWnd);
  if (pWnd)
  {
    pWnd->EnableWindow(TRUE);
  }

  pWnd = GetDlgItem(IDC_EXPIRATION);
  ASSERT(pWnd);
  if (pWnd)
  {
    pWnd->EnableWindow(TRUE);
  }

  pWnd = GetDlgItem(IDC_CHECKNUMBER);
  ASSERT(pWnd);
  if (pWnd)
  {
    pWnd->EnableWindow(FALSE);
  }
}

void CButtonsDlg::OnBnClickedCash()
{
  CWnd* pWnd;

  pWnd = GetDlgItem(IDC_CARDNUMBER);
  ASSERT(pWnd);
  if (pWnd)
  {
    pWnd->EnableWindow(FALSE);
  }

  pWnd = GetDlgItem(IDC_EXPIRATION);
  ASSERT(pWnd);
  if (pWnd)
  {
    pWnd->EnableWindow(FALSE);
  }

  pWnd = GetDlgItem(IDC_CHECKNUMBER);
  ASSERT(pWnd);
  if (pWnd)
  {
    pWnd->EnableWindow(FALSE);
  }
}

void CButtonsDlg::OnBnClickedCheck()
{
  CWnd* pWnd;

  pWnd = GetDlgItem(IDC_CARDNUMBER);
  ASSERT(pWnd);
  if (pWnd)
  {
    pWnd->EnableWindow(FALSE);
  }

  pWnd = GetDlgItem(IDC_EXPIRATION);
  ASSERT(pWnd);
  if (pWnd)
  {
    pWnd->EnableWindow(FALSE);
  }

  pWnd = GetDlgItem(IDC_CHECKNUMBER);
  ASSERT(pWnd);
  if (pWnd)
  {
    pWnd->EnableWindow(TRUE);
  }
}

BOOL CButtonsDlg::OnInitDialog()
{
  CDialog::OnInitDialog();

  m_fancyButton.LoadBitmaps(IDB_UP, IDB_DOWN, NULL, IDB_DISABLED);
  m_fancyButton.SizeToContent();

  CButton* pBSBitmapBtn = (CButton*)GetDlgItem(IDC_BTSBITMAP);
  ASSERT(pBSBitmapBtn);
  if (pBSBitmapBtn)
  {
    VERIFY(m_bmpBSBitmap.LoadBitmap(IDB_UP));
    HBITMAP hbmp = (HBITMAP)m_bmpBSBitmap.GetSafeHandle();
    pBSBitmapBtn->SetBitmap(hbmp);
  }

  CButton* pButton = (CButton*)GetDlgItem(IDC_CREDITCARD);
  ASSERT(pButton);
  if (pButton)
  {
    pButton->SetCheck(BST_CHECKED);
  }
  OnBnClickedCreditcard();

  return TRUE;  // return TRUE unless you set the focus to a control
  // EXCEPTION: OCX Property Pages should return FALSE
}

void CButtonsDlg::OnBnClickedOk()
{
}

void CButtonsDlg::OnBnClickedDisabled()
{
  if (UpdateData())
  {
    m_fancyButton.EnableWindow( BST_CHECKED != m_btnDisabled.GetCheck() ?
      TRUE : FALSE);
  }
}

void CButtonsDlg::OnBnClickedDisabled2()
{
  if (UpdateData())
  {
    CButton* pBitmapButton = (CButton*)GetDlgItem(IDC_BTSBITMAP);
    CButton* pCheckBox = (CButton*)GetDlgItem(IDC_DISABLED2);
    ASSERT(pBitmapButton && pCheckBox);
    if (pBitmapButton && pCheckBox)
    {
      if (BST_CHECKED == pCheckBox->GetCheck())
      {
        pBitmapButton->EnableWindow(FALSE);
      }
      else
      {
        pBitmapButton->EnableWindow(TRUE);
      }
    }
  }
}



void CButtonsDlg::OnBnClickedGetRadiobuttonValues()
{
  if (UpdateData())
  {
    CString str;
    str.Format("Radio button values (%ld):\r\n\r\n"
      "Yes = %s\r\n"
      "No = %s\r\n"
      "Maybe = %s",
      m_iAnswer,
      (0 == m_iAnswer ? "On" : "Off"),
      (1 == m_iAnswer ? "On" : "Off"),
      (2 == m_iAnswer ? "On" : "Off"));
    AfxMessageBox(str);
  }
}

void CButtonsDlg::OnBnClickedGetCheckboxValues()
{
  if (UpdateData())
  {
    CString str;
    str.Format("Check box values (%ld):\r\n\r\n"
      "Checkbox #1 = %s\r\n"
      "Checkbox #2 = %s\r\n"
      "Checkbox #3 = %s",
      m_iCheck1,
      (1 == m_iCheck1 ? "On" : "Off"),
      (1 == m_iCheck2 ? "On" : "Off"),
      (1 == m_iCheck3 ? "On" : "Off"));
    AfxMessageBox(str);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -