picture控件中绘图

penghuahuijuan 2016-07-22 10:18:21
现在想实现的功能是:现在picture控件中显示一幅图像,然后在某些坐标上绘制圆形标记(O),并标记序号,怎样实现??
给个思路呗,谢谢大家!!!
...全文
251 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2016-07-24
  • 打赏
  • 举报
回复
"当图像的大小和picture控件的大小不一致的时候" 根据图·的·大小;picture控件 MoveWindow
penghuahuijuan 2016-07-24
  • 打赏
  • 举报
回复
引用 3 楼 misa98 的回复:
你把picture控件的属性改成位图,然后关联一个位图就可以了
你好,改成位图,也有一个问题,当图像的大小和picture控件的大小不一致的时候,是不是必须人工对图像进行压缩或者拉伸, MFC有没有自适应的函数进行处理,谢谢!!
schlafenhamster 2016-07-24
  • 打赏
  • 举报
回复
建议用 GDI+
misa98 2016-07-23
  • 打赏
  • 举报
回复
你把picture控件的属性改成位图,然后关联一个位图就可以了
gz_qmc 2016-07-22
  • 打赏
  • 举报
回复
好吧,用控件就用控件,直接弄个窗口直接画也简单
非要用别人限制了封装了内幕没有办法搞明白的东西

这是在某DC上显示JPG或BMP或GIF的函数,自己看着办

HRESULT ShowPic(CDC *pDC,CString lpstrFile,int sx,int sy,int nScrWidth, int nScrHeight)
{
IPicture *pPic;
IStream *pStm;
BOOL bResult;

HANDLE hFile=NULL;
DWORD dwFileSize,dwByteRead;

//打开硬盘中的图形文件
hFile=CreateFile(lpstrFile,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile!=INVALID_HANDLE_VALUE)
{
dwFileSize=GetFileSize(hFile,NULL);//获取文件字节数
if(dwFileSize==0xFFFFFFFF)
{
CloseHandle(hFile);
return E_FAIL;
}
}
else return E_FAIL;


//分配全局存储空间
HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,dwFileSize);
if(hGlobal==NULL) return E_FAIL;

LPVOID pvData =GlobalLock(hGlobal);

if(pvData==NULL)//锁定分配内存块
{
GlobalFree(hGlobal);
return E_FAIL;
}
ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL);//把文件读入内存缓冲区
CloseHandle(hFile);//关闭打开的文件

GlobalUnlock(hGlobal);

CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);

//装入图形文件
bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic);
GlobalFree(hGlobal);

if(FAILED(bResult)) return E_FAIL;

long hmWidth;//图片的真实宽度
long hmHeight;//图片的真实高度
pPic->get_Width(&hmWidth);
pPic->get_Height(&hmHeight);


//将图形输出到屏幕上(有点像BitBlt)
bResult=pPic->Render(pDC->m_hDC,sx,sy,nScrWidth,nScrHeight,0,hmHeight,hmWidth,-hmHeight,NULL);

pPic->Release();

if(SUCCEEDED(bResult)) return S_OK;
return E_FAIL;
}
gz_qmc 2016-07-22
  • 打赏
  • 举报
回复
任何窗口,可直接画图和画文字 用用其他控件也就罢了 连图像和文本都要用控件 这个世界的人不把事情复杂化就不舒服 直接醉了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧