这个问题我以前回答过,再贴一遍吧!创建一个继承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);