Vc怎么把mfc,win32对话框背景,换成图片,JPG格式,png格式的
1个回答
2017-08-29
展开全部
JPEG是一种图像压缩标准,很多精美的图片都是采用这种格式标准,其特点是文件体积较小,而且支持24位色深。但是,Windows9x只支持位图文件(即以bmp为扩展名的文件)的墙纸。下面这个程序就是将以jpg或jpeg为扩展名的图片文件转化为位图文件,并通过修改注册表的键值来通知Windows更换墙纸。本程序使用了一个Tform;一个OpenPictureDialog用来让用户选择图片;三个SpeedButton;分别用来打开OpenPictureDialog对话框,确定更换墙纸,退出程序。程序全部代码如下:unitUnit1;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,jpeg,registry,ExtDlgs,StdCtrls,Buttons;typeTForm1=class(TForm)SpeedButton1:TSpeedButton;SpeedButton2:TSpeedButton;SpeedButton3:TSpeedButton;OpenPictureDialog1:TOpenPictureDialog;procedureSpeedButton1Click(Sender:TObject);procedureSpeedButton2Click(Sender:TObject);procedureSpeedButton3Click(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varForm1:TForm1;implementation{$R*.DFM}procedureTForm1.SpeedButton1Click(Sender:TObject);beginopenpicturedialog1.execute;{打开OpenPictureDialog对话框}end;procedureTForm1.SpeedButton2Click(Sender:TObject);varreg:tregistry;{Tregistry对象在Registry单元中声明,需要在Uese中引用Registry单元}jpeg:tjpegimage;{Tjpegimage对象在Jpeg单元中声明,需要在Uese中引用Jpeg单元}bmp:tbitmap;beginif(openpicturedialog1.filename=``)then{判断OpenPictureDialog1中有无文件被选中}messagedlg(`请选择一张图片`,mtinformation,[mbOK],0)elsebeginjpeg:=tjpegimage.Create;jpeg.LoadFromFile(openpicturedialog1.filename);{加载被用户选中的文件}bmp:=tbitmap.Create;bmp.assign(jpeg);bmp.savetofile(`c:\windows\wall.bmp`);{将转换成功的文件保存的路径及文件名}reg:=tregistry.Create;reg.rootkey:=hkey_current_user;{设置根键名称}reg.openkey(`controlpanel\desktop`,false);{打开ControlPanel\Desktop路径对应的主键}reg.writestring(`tilewallpaper`,`0`);reg.writestring(`wallpaper`,`c:\windows\wall.bmp`);{覆盖并写入新值TileWall-paper和Wallpaper串}systemparametersinfo(spi_setdeskwallpaper,0,nil,spif_sendchange);{通知win-dows更换墙纸}reg.closekey;{写入更改内容并关闭注册表}reg.Free;{释放对象}close;end;end;procedureTForm1.SpeedButton3Click(Sender:TObject);beginclose;end;end.此程序只能将以jpg或jpeg为扩展名的图片文件转化为Windows的墙纸,因此应在OpenPictureDialog控件的Filter属性中筛选显示文件的类型,最好设置为JPEGImageFile(*.jpg)和JPEGImageFile(*.jpeg)文件。程序在中文Windows98,Delphi4.0下编译通过
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询