关于MFC的编程:我已经能让图片在视图中显示,但不知道怎么样才能把该图片加水印后再显示出来,也就是不知道怎么在vc环境下给图片加水印。在视图中打开图片的代码如下:
CDC *dc=GetDC();
CDC THDC;
HBITMAP THBM;
BITMAP bmp;
CString OldFile;
CFileDialog dlg(TRUE);
dlg.m_ofn.lpstrFilter = "Bmp Files\0*.bmp\0";
if(dlg.DoModal()==IDOK)
{
OldFile=dlg.GetPathName(); //获取图片的路径
THBM=(HBITMAP)LoadImage(NULL,OldFile,IMAGE_BITMAP,0,0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION);//载入位图
GetObject(THBM,sizeof(bmp),&bmp);
while(THDC==NULL)
THDC.CreateCompatibleDC(dc);
GetObject(THBM,sizeof(bmp),&bmp);//取得位图信息
SelectObject(THDC,THBM);//选入位图至内存DC
dc-> BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,&THDC,0,0,SRCCOPY);
//Invalidate();
DeleteObject(THBM);//删除位图
}
ReleaseDC(dc); //释放内存
DeleteDC(THDC);
CDC *dc=GetDC();
CDC THDC;
HBITMAP THBM;
BITMAP bmp;
CString OldFile;
CFileDialog dlg(TRUE);
dlg.m_ofn.lpstrFilter = "Bmp Files\0*.bmp\0";
if(dlg.DoModal()==IDOK)
{
OldFile=dlg.GetPathName(); //获取图片的路径
THBM=(HBITMAP)LoadImage(NULL,OldFile,IMAGE_BITMAP,0,0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION);//载入位图
GetObject(THBM,sizeof(bmp),&bmp);
while(THDC==NULL)
THDC.CreateCompatibleDC(dc);
GetObject(THBM,sizeof(bmp),&bmp);//取得位图信息
SelectObject(THDC,THBM);//选入位图至内存DC
dc-> BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,&THDC,0,0,SRCCOPY);
//Invalidate();
DeleteObject(THBM);//删除位图
}
ReleaseDC(dc); //释放内存
DeleteDC(THDC);
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货