C语言如何引用背景图片

C语言如何引用背景图片,第1张

直接添加个图片控件,然后拉张图片进去就可以了阿

或这动态加载图片:

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12408316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存