怎样把窗口上的图形复制到系统剪切板上
我在做一个小的画图控件,现在大部分已经做完了,只是不知道怎样把窗口上的图形复制到系统剪切板上,所以我的那个画图控件还没有复制功能。
函数接口已经做好了,以下是代码。
void CChildWnd::DoCut()
{
//MessageBox("CChildWnd::DoCut()");
if(m_bSuccedDecideRect)
{
OnEditCopy();
OnEditCut();
}
else
{MessageBox("你还没有选定要剪切的图形呢!!");}
}
void CChildWnd::OnEditCut()
{
CClientDC dc(this);
CBrush *pOldBrush;
pOldBrush=(CBrush *)dc.SelectStockObject(WHITE_BRUSH);
dc.Rectangle(m_RectCopyCut);
m_RectCopyCut.OffsetRect(CPoint (m_nHPos,m_nVPos));
m_dcMemory.Rectangle(m_RectCopyCut);
dc.SelectObject(pOldBrush);
m_bSuccedDecideRect=false;
Invalidate();
}
void CChildWnd::OnEditCopy()
{
}
我已经用m_RectCopyCut把客户DC上的区域确定,OnEditCut()都已经可以删除这个区域内的图形了,就是m_RectCopyCut()还不知道怎样把图形放到剪切板中,我的目的是把m_RectCopyCut()限定的区域上的图形放到剪切板中,这样windows自带的画板中
的就可以把这个区域的图形用粘贴功能粘贴上去了,我试了一些方法还是做不出OnEditCopy()
这个函数,请高手一定帮我写好这个函数,十万火急,万分感谢。!!1
问题点数:0、回复次数:1Top
1 楼maoxinhua995(毛新华)回复于 2003-07-04 14:27:10 得分 0
CBitmap *pOldBitmap,NewBitmap;
CDC* pt;
pt=CDC::FromHandle(::GetDC(NULL));
NewBitmap.CreateCompatibleBitmap(pt,m_RectCopyCut.Width(),m_RectCopyCut.Height());
CDC dc;
dc.CreateCompatibleDC(NULL);
pOldBitmap=dc.SelectObject(&NewBitmap);
dc.FillRect(m_RectCopyCut, CBrush::FromHandle((HBRUSH)GetStockObject(BLACK_BRUSH)));
dc.BitBlt(0,0,m_RectCopyCut.Width(),m_RectCopyCut.Height(),
&m_dcMemory,m_RectCopyCut.left+m_nHPos,m_RectCopyCut.top +m_nVPos,SRCCOPY);
HANDLE handle=DDBToDIB(NewBitmap,BI_RGB,NULL);
if(!OpenClipboard())
return;
EmptyClipboard();
SetClipboardData(CF_DIB,handle);
CloseClipboard();
ReleaseDC(pt);
dc.SelectObject(pOldBitmap);Top




