在编辑控件中拖动文本字符串

翻译|其它|编辑:郝浩|2005-05-23 09:47:00.000|阅读 1860 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


最近,我完成了CDragEdit类。用这个类,用户能在两个编辑控件或另外的编辑
控件之间拷贝/移动字符串。


在以前,我们在一个编辑控件与另一个编辑控件之间移动/拷贝字符串时或从一个编
辑窗口到外部的应用程序的编辑控件之间拷贝/移动字符串时,我们只能通过剪切板
用拷贝、剪切、粘贴命令实现,这是如此的麻烦。因为我的CDragEdit类是由CEdit类
派生的,故你可在应用程序中替代CEdit,实现字符串拖动。除此之外,CDragEdit类
能接受OLE's UDT,因而你能将它用在更多的方面。


*CDragEdit类层次

CObject
   |
   +-CCmdTarget
     |
     +-CWnd
       |
       +-CEdit
         |
         +-CDragEdit

* 如何使用CDragEdit类?

如何使用CDragEdit类在一个已存在对话框中。
在你的对话框定义文件中,你必需包括“CDragEdit.h”文件,并且为每一个编
辑控件定义一个CDragEdit变量,之后在你的DoDatachange()函数中使用
DDX_Control(),在OnInitialDialog()函数中调用CDragEdit::Init()。

如何在工具条中使用。

调用CDragEdit::Create()创建一个编辑控件,并且调用CDragEdit::Init()初
始化编辑控件。

示例:


////////////////////// //TestDragEditDlg.h //////////////

#include"CDragEdit.h" //include it in your xxxDlg.h

class CTestDragEditDlg : public CDialog
{
...
// Dialog Data
//{{AFX_DATA(CTestDragEditDlg)

enum { IDD = IDD_DRAGEDIT };
CDragEdit m_edit2; //declare a CDragEdit variable
CDragEdit m_edit1; //for each edit control
//}}AFX_DATA
...
}

//////////////////////
//TestDragEditDlg.cpp
//////////////////////

void CTestDragEditDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTestDragEditDlg)
DDX_Control(pDX, IDC_EDIT2, m_edit2);
//subclass the standard edit
DDX_Control(pDX, IDC_EDIT1, m_edit1);
//control as a CDragEdit
//}}AFX_DATA_MAP

}

BOOL CTestDragEditDlg::OnInitDialog()
{
...
//You need to initiate CDragEdit first
m_edit1.Init();
m_edit2.Init();
...
}


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP