用到了BUTTON和RICHEDIT这两个控件
代码如下:procedure TForm1.Button2Click(Sender: TObject);var
bmp: TBitmap;
s1:string;
DT: IActiveDesktop;
WPO: TWallpaperOpt;
WS: WideString;
begin
s1:=RichEdit1.Text;
bmp := TBitmap.Create;
bmp.LoadFromFile('c:\delphi_wallpaper1024.bmp') ;
bmp.Canvas.Brush.Style := bsClear;
bmp.Canvas.Font.Color := clRed; //这里设置字体属性;
bmp.Canvas.Font.Size :=20;
bmp.Canvas.TextOut(800, 50, s1); //X, Y是文字输出的坐标信息;
bmp.SaveToFile('c:\delphi_wallpaper1024a.bmp') ;
FreeAndNil(bmp);
DT := CreateComObject(CLSID_ActiveDesktop) As IActiveDesktop;
//WS := StrFile;
//Case Style Of
// 0: WPO.dwStyle := WPSTYLE_CENTER; {居中}
// 1: WPO.dwStyle := WPSTYLE_TILE; {平铺}
// 2: WPO.dwStyle := WPSTYLE_STRETCH; {拉伸}
//Else WPO.dwStyle := WPSTYLE_CENTER;
//End;
WPO.dwStyle := WPSTYLE_STRETCH;
WPO.dwSize := SizeOf(WPO);
DT.SetWallpaperOptions(WPO, 0);
DT.SetWallPaper('c:\delphi_wallpaper1024a.bmp', 0);
DT.ApplyChanges(AD_APPLY_ALL);
end;
代码如下:procedure TForm1.Button2Click(Sender: TObject);var
bmp: TBitmap;
s1:string;
DT: IActiveDesktop;
WPO: TWallpaperOpt;
WS: WideString;
begin
s1:=RichEdit1.Text;
bmp := TBitmap.Create;
bmp.LoadFromFile('c:\delphi_wallpaper1024.bmp') ;
bmp.Canvas.Brush.Style := bsClear;
bmp.Canvas.Font.Color := clRed; //这里设置字体属性;
bmp.Canvas.Font.Size :=20;
bmp.Canvas.TextOut(800, 50, s1); //X, Y是文字输出的坐标信息;
bmp.SaveToFile('c:\delphi_wallpaper1024a.bmp') ;
FreeAndNil(bmp);
DT := CreateComObject(CLSID_ActiveDesktop) As IActiveDesktop;
//WS := StrFile;
//Case Style Of
// 0: WPO.dwStyle := WPSTYLE_CENTER; {居中}
// 1: WPO.dwStyle := WPSTYLE_TILE; {平铺}
// 2: WPO.dwStyle := WPSTYLE_STRETCH; {拉伸}
//Else WPO.dwStyle := WPSTYLE_CENTER;
//End;
WPO.dwStyle := WPSTYLE_STRETCH;
WPO.dwSize := SizeOf(WPO);
DT.SetWallpaperOptions(WPO, 0);
DT.SetWallPaper('c:\delphi_wallpaper1024a.bmp', 0);
DT.ApplyChanges(AD_APPLY_ALL);
end;
还有一个问题:在程序中我用的是RICHEDIT,运行后无法RICHEDIT里面的文字进行编辑,比如文字大小等,应该怎么办?
还有就是在RICHEDIT里写出的几行文字写到图片上后没有回车换行,全部都在一行里。
你需要对上面的程序进行改进,逐行读取richedit中的内容写到image上