码迷,mamicode.com
首页 > 其他好文 > 详细

CEdit添加右键菜单, ClistCtrl接收文件拖拽

时间:2015-07-09 16:15:47      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

CEdit接收文件拖拽很容易,但ClistCtrl却很难;

CListCtrl添加右键菜单很容易,而CEdit却很难。


这种功能不全面,阴差阳错的感觉让人很头疼。

下面介绍一下 CEdit添加右键菜单 和 CListCtrl接收文件拖拽的方法


1. CEdit 添加右键菜单

从CEdit派生出一个类CMyEdit,添加消息ON_WM_CONTEXTMENU(),响应消息函数OnContextMenu()。如下:

类定义:

//自定义CMyEdit
//目的为了实现CEdit添加右键菜单

class CMyEdit : public CEdit
{
	DECLARE_DYNAMIC(CMyEdit)

public:

	CMyEdit();
	virtual ~CMyEdit();

	DECLARE_MESSAGE_MAP()

public:
	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
};
类实现:

//自定义CMyListCtrl 类
IMPLEMENT_DYNAMIC(CMyEdit, CEdit)

BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
	ON_WM_CONTEXTMENU()    //必须要加
END_MESSAGE_MAP()

CMyEdit::CMyEdit()
{
}

CMyEdit::~CMyEdit()
{
}

void CMyEdit::OnContextMenu(CWnd* pWnd, CPoint point)
{
	// CG: This block was added by the Pop-up Menu component

	if (point.x == -1 && point.y == -1)
	{
		//keystroke invocation
		CRect rect;
		GetClientRect(rect);
		ClientToScreen(rect);

		point = rect.TopLeft();
		point.Offset(5, 5);
	}

	CMenu menu;
	VERIFY(menu.LoadMenu(IDR_MENU1));

	CMenu* pPopup = menu.GetSubMenu(0);
	ASSERT(pPopup != NULL);

	CWnd* pWndPopupOwner = this;

	while (pWndPopupOwner->GetStyle() & WS_CHILD)
	{
		pWndPopupOwner = pWndPopupOwner->GetParent();
	}

	pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner);
}

2. CListCtrl支持文件拖拽

类声明:

//自定义CMyListCtrl
//目的为了实现ListCtrl接收文件拖拽

class CMyListCtrl : public CListCtrl
{
	DECLARE_DYNAMIC(CMyListCtrl)

public:

	CMyListCtrl();
	virtual ~CMyListCtrl();

	DECLARE_MESSAGE_MAP()

public:
	afx_msg void OnDropFiles(HDROP hDropInfo);
};

类定义:

//自定义CMyListCtrl 类
IMPLEMENT_DYNAMIC(CMyListCtrl, CListCtrl)

BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
	ON_WM_DROPFILES()   //必须
END_MESSAGE_MAP()

CMyListCtrl::CMyListCtrl()
{
}

CMyListCtrl::~CMyListCtrl()
{
}

//ListCtrl接收拖拽(并且AcceptFiles属性要设为TRUE)
void CMyListCtrl::OnDropFiles(HDROP hDropInfo)
{
	// TODO:  在此添加消息处理程序代码和/或调用默认值

	((CUploadAPK*)GetParent())->OnDropFiles(hDropInfo);
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

CEdit添加右键菜单, ClistCtrl接收文件拖拽

标签:

原文地址:http://blog.csdn.net/jiangqin115/article/details/46817017

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!