想在一个对话框的picture里画图,IDC_PIC是picture的id号
CStatic *pStatic=(CStatic*)GetDlgItem(IDC_PIC);
CRect rect;
pStatic->GetWindowRect(&rect);
pStatic->ScreenToClient(&rect);
CDC *pDC=pStatic->GetDC();
这样继续画图的时候,如果图形的坐标超出了picture的范围,图形就会画出picture范围以外,怎么把图限制在picture里
CStatic *pStatic=(CStatic*)GetDlgItem(IDC_PIC);
CRect rect;
pStatic->GetWindowRect(&rect);
pStatic->ScreenToClient(&rect);
CDC *pDC=pStatic->GetDC();
这样继续画图的时候,如果图形的坐标超出了picture的范围,图形就会画出picture范围以外,怎么把图限制在picture里
解决方案 »
- 对CxImage熟悉的同志进来看看。
- listctrl copy的问题?
- 重分急求!!!!!!!
- 如何更改某个窗体的类名,具体请进。
- vc++生成的DLL,把结果赋值给传入的string里面,要怎么做啊,而且还要能被vb调用???
- 已知HBITMAP句柄,如何获取其代表的位图的所有象素的RGB值
- 什么是virtual-key code hardware scan code??
- 响应ATL dll事件的问题
- 这是我出现问题的源代码,请各位指教,多谢帮忙!!
- MFC上picture控件加载bmp图
- OpenProcess 错误,返回GetLastError为87
- 如何通过进程名获取进程的一些信息?
void CMyJDlg::OnButton12() //在picture控件中装载图片
{
CBitmap hbmp;
HBITMAP hbitmap;
//将pStatic指向要显示的地方
CStatic *pStatic;
pStatic=(CStatic*)GetDlgItem(IDC_PIC);//IDC_PIC为图片控件ID
CString strpicname = "CloseButtonDown.jpg";
//装载资源
hbitmap=(HBITMAP)::LoadImage(NULL,strpicname,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//strpicname为图片的名字
hbmp.Attach(hbitmap);
//获取图片格式
BITMAP bm;
hbmp.GetBitmap(&bm);
CDC dcMem;
dcMem.CreateCompatibleDC(GetDC());
CBitmap *pOldBitmap=(CBitmap*)dcMem.SelectObject(hbmp); CRect lRect;
pStatic->GetClientRect(&lRect);
//显示位图
//ScreenToClient(&lRect);
pStatic->GetDC()->StretchBlt(lRect.left,lRect.top,lRect.Width(),lRect.Height(),&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
dcMem.SelectObject(&pOldBitmap);
}