直接添加个图片控件,然后拉张图片进去就可以了阿
或这动态加载图片:
HRESULT ShowPic(char *lpstrFile,HWND hWnd){
HDC hDC_Temp=GetDC(hWnd)
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)
return E_FAIL
}
else
{
return E_FAIL
}
//分配全局存储空间
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize)
LPVOID pvData = NULL
if (hGlobal == NULL)
return E_FAIL
if ((pvData = GlobalLock(hGlobal)) == NULL)//锁定分配内存块
return E_FAIL
ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL)//把文件读入内存缓冲区
GlobalUnlock(hGlobal)
CreateStreamOnHGlobal(hGlobal, TRUE, &pStm)
//装入图形文件
bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic)
if(FAILED(bResult))
return E_FAIL
OLE_XSIZE_HIMETRIC hmWidth//图片的真实宽度, 单位为英寸
OLE_YSIZE_HIMETRIC hmHeight//图碰粗迹片的真实高度, 单位为英寸
pPic->get_Width(&hmWidth)
pPic->get_Height(&hmHeight)
//转换hmWidth和hmHeight为pixels距离,1英寸=25.4毫米
int nWidth = MulDiv(hmWidth,GetDeviceCaps(hDC_Temp,LOGPIXELSX),2540)
int nHeight = MulDiv(hmHeight,GetDeviceCaps(hDC_Temp,LOGPIXELSY),2540)
//将图形输出到屏幕上(有点像BitBlt)
bResult=pPic->Render(hDC_Temp,0,0,nWidth,nHeight,0,hmHeight,hmWidth,-hmHeight,NULL)
hmHeight,NULL)
pPic->Release()
CloseHandle(hFile)//关闭打开的文件
if (SUCCEEDED(bResult))
{
return S_OK
}
else
{
return E_FAIL
}
}
上面是具体实现的函数代码,第一个参数是图片的存放的位置,第二个参数是窗口句柄
这样就可以动态显示图片凳源了,在vc上已亲测可编译运行
-物联网校企联盟技术部
在onpaint()中
if(IsIconic())
{
.......//系统代码,不修改
}
else//在else中增加如下代码,对JPG,BMP,PNG(背景透明图片)有效
{
CRectrc
GetClientRect(rc)
CImageimage
image.Load(_T("c:\\1.jpg"))//图片文件路径
if(image.GetBPP()==32)
{
intiintj
for(i=0i<image.GetWidth()i++)
{
for(j=0j<image.GetHeight()j++)
{
byte*pByte=(byte*)image.GetPixelAddress(i,j)
pByte[0]=pByte[0]*pByte[3]/255
pByte[1]=pByte[1]*pByte[3]/255
pByte[2]=pByte[2]*pByte[3]/255
}
}
}
image.Draw(GetDC()->m_hDC,rc)
}
扩展资料
C++插入图片,音乐,文字
#include<graphics.h>//画布上的一系列 *** 作
#include<time.h>//有个各种时间昌燃函数
#include<conio.h>//按键 *** 作
#include<mmSystem.h>//播放音乐
#pragmacomment(lib,"winmm.lib")//导入winmm.lib库
intmain()
{
/**图片**/
initgraph(800,600)//展开画布
IMAGEimg//类似于"inta",此是定义一个图片变量
loadimage(&img,"最爱头像.jpg",800,600)//加载图片
/**把图片放入windows资源管理器打开的文件夹时不需要写地址**/
/**写地址时'\'都要写成'\\'**/
putimage(0,0,&img)//(x,y,取地址)
/**音乐**/
mciSendString(TEXT("openMonBet.mp3aliasmusic"),0,0,0)
//open- *** 作方式,alias--定义了该 *** 作的别名为music
mciSendString(TEXT("playmusic"),0,0,0)
/**文字**/
setbkmode(0)//去掉文字背景
settextcolor(YELLOW)//设置文字颜色
settextstyle(40,0,TEXT("楷体"))//(高,宽<0为自适应>,字体)
outtextxy(200,150,TEXT("最帅的男人"))//(x,y,内容)
//设置炫彩文字****************---就是颜色的循环
srand((unsigned)time(NULL))
while(!kbhit())//检测按键函数,输入按键返回1,不输返回0,我们这慎升里要相反的
{
setcolor(RGB(rand()%256,rand()%256,rand()%256))
//RGB是三原色宽迅老红,绿,蓝,颜色范围是0~255
outtextxy(200,250,"去掉TEXT就是这样哦")
Sleep(100)//暂停100ms
}
while(1)
return0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)