如何编写像NetAnts,FlashGet一样的“拖放框”

textstar 2000-08-20 06:08:00
我想在我自编的程序中加入一段代码用来实现像NetAnts,FlashGet一样的“拖放框”,来接受其它程序中的文本只要用户从IE或WORD等文字软件中把文本拖放到“拖放框”中在我自编的程序的文本窗口显示出拖入的文本。请问各位高手如何实现!谢谢!
...全文
145 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shines77 2000-08-20
OUYAN说得对!textstar: 你是要 vb 代码,还是要 vc 的?vb的我帮你写,不就是几句吗?现在还不想写,等你回话!我太忙了,你去看看“VB虾们,我给100分!!帮忙!怎样将字符空移到指定的地方(当然,指定的地方一定要可以输入字符,比如文本狂)”的帖子。
回复
shines77 2000-08-20
谁说VB很难做,其实我告诉你,pino,在VB里比VC++还容易百倍(此话有点过分!),不过那是你不懂,我用VB做出来的绝对比softsprite兄的简短,容易理解,不就是拖放,剪贴板,Always On Top吗,VB里做拖放窗口,哪用如此麻烦(广告语??) [步步高无绳电话,哪用如此尴尬!!]
回复
OUYAN 2000-08-20
用 vb 处理很简单的,其实就是个拖放操作,把链接放在剪贴板里,下载时就去剪贴板里读。
回复
pino 2000-08-20
用 vb 太不好办了,反正 delphi 有现成的 vcl 可用,vb 好像没有可用的 ocx
回复
U皮特U 2000-08-20

创建一个继承CFrameWnd的类- CDownloadBasket
在该类的PreCreateWindow(CREATESTRUCT& cs) 中:
cs.style &= ~WS_CAPTION;
cs.style &= ~WS_SYSMENU;
cs.style |= WS_DLGFRAME | WS_EX_WINDOWEDGE | WS_EX_ACCEPTFILES;
去除标题栏、系统菜单等。
// 以下使得用鼠标按住窗口可以拖动窗口
void CDownloadBasket::OnLButtonDown(UINT nFlags, CPoint point)
{
PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
}
//以下设置本窗口为顶级窗口,并替换视为可以处理拖放事件的视
int CDownloadBasket::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;

g_downloadBasket = this; // 全局变量,在别处可以操作本窗口

CRect rect;
GetClientRect(&rect);
m_DLBView = new CDLBasketView();
m_DLBView->Create(NULL, "",
WS_VISIBLE | WS_CHILD, rect, this, 12453);
SetActiveView((CView*)m_DLBView);

SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | WS_EX_TOPMOST);
return 0;
}

创建一个继承CView的类 CDLBasketView,
分别处理它的OnDragEnter、OnDragOver、OnDrop等,处理拖放
在它的OnLButtonDown中,用g_downloadBasket->OnLButtonDown(nFlags, point); 将鼠标拖动窗口的处理交给框架窗口。

// 显示这个窗口
m_downloadBasket = new CDownloadBasket();
ASSERT_VALID(m_downloadBasket);
BOOL bResult = m_downloadBasket->Create(NULL,
_T(""),
WS_POPUP,
CRect(0,0,42,42),//CFrameWnd::rectDefault,
AfxGetApp()->m_pMainWnd );
ASSERT(bResult);
m_downloadBasket->ShowWindow(SW_NORMAL);

回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7489

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2000-08-20 06:08
社区公告
暂无公告