16,471
社区成员
发帖
与我相关
我的任务
分享
#pragma once
#include "afxwin.h"
class CMyEditBox :
public CEdit
{
public:
CMyEditBox();
~CMyEditBox();
public:
bool jSelectAll;
public:
bool getSelStatus();
bool setSelStats(bool enable);
};
#include "stdafx.h"
#include "MyEditBox.h"
CMyEditBox::CMyEditBox()
: jSelectAll(true)
{
}
CMyEditBox::~CMyEditBox()
{
}
bool CMyEditBox::getSelStatus()
{
return jSelectAll;
}
bool CMyEditBox::setSelStats(bool enable)
{
jSelectAll = enable;
return false;
}
#pragma once
#include "MyEditBox.h"
// CTVTool_PanelBox 对话框
class CTVTool_PanelBox : public CDialogEx
{
DECLARE_DYNAMIC(CTVTool_PanelBox)
public:
CTVTool_PanelBox(CWnd* pParent = NULL); // 标准构造函数
virtual ~CTVTool_PanelBox();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_DIALOG_PANELBOX };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
//省略代码
CMyEditBox *myEdit_M;
afx_msg void OnEnKillfocusEditPanelM();
};
#include "stdafx.h"
#include "TVTool_PanelBox.h"
#include "afxdialogex.h"
// CTVTool_PanelBox 对话框
IMPLEMENT_DYNAMIC(CTVTool_PanelBox, CDialogEx)
//省略代码
BEGIN_MESSAGE_MAP(CTVTool_PanelBox, CDialogEx)
ON_EN_KILLFOCUS(IDC_EDIT_PANEL_M, &CTVTool_PanelBox::OnEnKillfocusEditPanelM)
END_MESSAGE_MAP()
//省略代码
BOOL CTVTool_PanelBox::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
myEdit_M = (CMyEditBox*)GetDlgItem(IDC_EDIT_PANEL_M);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
//省略代码
void CTVTool_PanelBox::OnEnKillfocusEditPanelM()
{
// TODO: 在此添加控件通知处理程序代码
myEdit_M->setSelStats(true);
}
//省略代码
myEdit_M=new CMyEditBox();
myEdit_M->SubclassDlgItem(IDC_EDIT_PANEL_M,this);
#pragma once
// CMyEditBox2
class CMyEditBox2 : public CEdit
{
DECLARE_DYNAMIC(CMyEditBox2)
public:
CMyEditBox2();
virtual ~CMyEditBox2();
virtual void OnFinalRelease();
protected:
DECLARE_MESSAGE_MAP()
DECLARE_DISPATCH_MAP()
DECLARE_INTERFACE_MAP()
private:
bool jSelectAll;
public:
bool getSelStatus();
bool setSelStats(bool enable);
};
MyEditBox2.cpp
// MyEditBox2.cpp : 实现文件
//
#include "stdafx.h"
#include "TVTool.h"
#include "MyEditBox2.h"
// CMyEditBox2
IMPLEMENT_DYNAMIC(CMyEditBox2, CEdit)
CMyEditBox2::CMyEditBox2()
{
#ifndef _WIN32_WCE
EnableActiveAccessibility();
#endif
EnableAutomation();
}
CMyEditBox2::~CMyEditBox2()
{
}
void CMyEditBox2::OnFinalRelease()
{
// 释放了对自动化对象的最后一个引用后,将调用
// OnFinalRelease。 基类将自动
// 删除该对象。 在调用该基类之前,请添加您的
// 对象所需的附加清理代码。
CEdit::OnFinalRelease();
}
BEGIN_MESSAGE_MAP(CMyEditBox2, CEdit)
END_MESSAGE_MAP()
BEGIN_DISPATCH_MAP(CMyEditBox2, CEdit)
END_DISPATCH_MAP()
// 注意: 我们添加 IID_IMyEditBox2 支持
// 以支持来自 VBA 的类型安全绑定。 此 IID 必须同附加到 .IDL 文件中的
// 调度接口的 GUID 匹配。
// {3A175B88-B6A6-42FF-80F8-85EEDEC27FA0}
static const IID IID_IMyEditBox2 =
{ 0x3A175B88, 0xB6A6, 0x42FF, { 0x80, 0xF8, 0x85, 0xEE, 0xDE, 0xC2, 0x7F, 0xA0 } };
BEGIN_INTERFACE_MAP(CMyEditBox2, CEdit)
INTERFACE_PART(CMyEditBox2, IID_IMyEditBox2, Dispatch)
END_INTERFACE_MAP()
// CMyEditBox2 消息处理程序
bool CMyEditBox2::getSelStatus()
{
return jSelectAll;
}
bool CMyEditBox2::setSelStats(bool enable)
{
jSelectAll = enable;
return false;
}