对话框上有一picture控件,上画了些波形图,现有按钮可以实现拷贝当前picture控件的图形到剪贴板上,然后ctrl+V就可粘贴在画图工具中,怎么实现?
解决方案 »
- 有用过appface的吗
- CListCtrl与CTreeCtrl有啥不同啊
- 求救:VS2010 MFC单文档应用,频繁切换和激活应用程序出现异常中断
- 毫无理由,散分
- 怎样在ListCtrl的项中加入下拉框?
- 有谁对ipx协议和该结构体sockaddr_ipx比较熟啊!!急
- 关于写文本文件的问题——这样做为什么会出错?
- 又穿一层马甲,再放200分——顺便问一个大家职业生涯都可能遇到的问题
- 一个C++问题!
- 那位大侠能解释一下IO完成端口和线程池,分多多哟!
- CSize 的一个问题,sizeMax既然是函数,不是对象,怎么调用.CX呢?请明示
- 大哥们,这样用是什么意思??GetParent()->SendMessage(WM_COMMAND, IDCANCEL);谢谢!
http://www.vckbase.com/document/viewdoc/?id=181
贴个代码
void OnCopyClient()
{
CDC hScrDC;
CRect rect;
hScrDC.CreateDC("DISPLAY",NULL,NULL,NULL);
this->GetClientRect(rect);
this->ClientToScreen(rect); HBITMAP hBitmap, hOldBitmap;
hBitmap = CreateCompatibleBitmap(hScrDC, rect.Width(), rect.Height());
CDC hMemDC ;
hMemDC.CreateCompatibleDC(&hScrDC);
hOldBitmap = (HBITMAP)::SelectObject(hMemDC, hBitmap); BitBlt(hMemDC, 0, 0, rect.Width(), rect.Height(),hScrDC, rect.left, rect.top , SRCCOPY); hBitmap = (HBITMAP)::SelectObject(hMemDC, hOldBitmap); HWND hWnd = GetSafeHwnd();
::OpenClipboard(hWnd);
::EmptyClipboard();
::SetClipboardData(CF_BITMAP, hBitmap);
::CloseClipboard();
}
你把this指针换成你的pic控件的指针就可以了