MFCボタンコントロールButton押下・弾発イベント実装例
1893 ワード
MFCのボタンコントロールButton自体には、クリック、ダブルクリックなどのメッセージ応答イベントがありますが、個別の「押す」と「弾き出す」にはカスタマイズが必要です.以下はボタンカスタマイズイベントの例です.
1-プロジェクトディレクトリにクラスを右クリックして追加します.
2-C++Classを追加する.
3-CButtonベースのクラスを追加し、CPTZButtonと命名し、名前は自分の必要に応じて勝手に取ればいい.
4-PTZButton.hにコードを追加すると以下のようになります.
5-PTZButton.cppに追加されたコードは以下の通りです.
6-次に追加したボタンを関連付ける.
ダイアログボックスにButtonコントロールを追加->コントロールの右クリックで変数を追加->ダイアログボックスのヘッダファイルで
ボタン変数定義でCButtonをCPTZButton->完成に修正します.
7-他に弾発イベントを押すボタンを追加する必要がある場合は、6ステップを繰り返して1つずつ追加します.
1-プロジェクトディレクトリにクラスを右クリックして追加します.
2-C++Classを追加する.
3-CButtonベースのクラスを追加し、CPTZButtonと命名し、名前は自分の必要に応じて勝手に取ればいい.
4-PTZButton.hにコードを追加すると以下のようになります.
#if !defined(PTZ_BUTTON_CONTROL_H_) //
#define PTZ_BUTTON_CONTROL_H_
#if _MSC_VER > 1000 // C 1000, vc6.0 1200
#pragma once
#endif // _MSC_VER > 1000
class CPTZButton : public CButton
{
//
public:
CPTZButton();
virtual ~CPTZButton();
protected:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);//
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()
};
#endif
5-PTZButton.cppに追加されたコードは以下の通りです.
#include "stdafx.h"
#include "PTZButton.h"//
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CPTZButton::CPTZButton()
{
}
CPTZButton::~CPTZButton()
{
}
BEGIN_MESSAGE_MAP(CPTZButton, CButton)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
END_MESSAGE_MAP()
/*************************************************
: OnLButtonDown
:
:
:
:
*************************************************/
void CPTZButton::OnLButtonDown(UINT nFlags, CPoint point)
{
//
CButton::OnLButtonDown(nFlags, point);
}
/*************************************************
: OnLButtonUp
:
:
:
:
*************************************************/
void CPTZButton::OnLButtonUp(UINT nFlags, CPoint point)
{
//
CButton::OnLButtonUp(nFlags, point);
}
6-次に追加したボタンを関連付ける.
ダイアログボックスにButtonコントロールを追加->コントロールの右クリックで変数を追加->ダイアログボックスのヘッダファイルで
ボタン変数定義でCButtonをCPTZButton->完成に修正します.
CPTZButton m_ptzupMC;// CButton m_ptzupMC, CPTZButton m_ptzupMC
7-他に弾発イベントを押すボタンを追加する必要がある場合は、6ステップを繰り返して1つずつ追加します.