我在RichEdit中输入文字,并且改变字体和字号,想在image中原样显示出来,该怎么做?
请大家帮个忙!多谢!

解决方案 »

  1.   

    采用以下方法将RICHEDIT的内容存到IMAGE中,最终目的是得到BMP图形。
    既richedit-->bmp的问题。
    只要IMAGE的尺寸合适,可得到整个RICHEDIT的内容///////////////////////////////
    附:参考方法(具体的方法你仔细调试一下)
    uses RichEdit;procedure TForm1.Button1Click(Sender: TObject);
    var
      Range: TFormatRange;
      LastChar, MaxLen, LogX, LogY: Integer;
    begin
      FillChar(Range, SizeOf(TFormatRange), 0);
      with Image1, Range do
      begin
        LogX := GetDeviceCaps(Canvas.Handle, LOGPIXELSX);
        LogY := GetDeviceCaps(Canvas.Handle, LOGPIXELSY);
        hdc := Canvas.Handle;
        hdcTarget := hdc;
        rc.right := Image1.ClientWidth * 1440 div LogX;
        rc.bottom := Image1.ClientHeight * 1440 div LogY;
        rcPage := rc;
        LastChar := 0;
        MaxLen := GetTextLen;
        chrg.cpMax := -1;
        repeat
          chrg.cpMin := LastChar;
          LastChar := SendMessage(RichEdit1.Handle, EM_FORMATRANGE, 1,
                                  Longint(@Range));
        until (LastChar >= MaxLen) or (LastChar = -1);
      end;
      SendMessage(RichEdit1.Handle, EM_FORMATRANGE, 0, 0);
      Image1.Refresh;
    end;