用到了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;

解决方案 »

  1.   

    大家看看这个小东东还有哪些需要改进的?
    还有一个问题:在程序中我用的是RICHEDIT,运行后无法RICHEDIT里面的文字进行编辑,比如文字大小等,应该怎么办? 
    还有就是在RICHEDIT里写出的几行文字写到图片上后没有回车换行,全部都在一行里。 
      

  2.   

    可以对文字进行编辑啊
    你需要对上面的程序进行改进,逐行读取richedit中的内容写到image上