Текущий архив: 2004.04.04;
Скачать: CL | DM;
Вниз
TRichedit, WM_SETZOOM и EM_FORMATRANGE Найти похожие ветки
← →
MetalFan © (2004-03-11 17:26) [0]Доброе время суток, мастера!!!
у меня такая проблема:
есть ричедит:
RichEdit1: TRichEdit
, в нем есть текст
Даем ему zoom:
Richedit1.perform(EM_SETZOOM, 150, 100);
где EM_SETZOOM = WM_USER + 225
потом делаем "снимок"
function RichEditToBMP(RichEdit_: TRichEdit): TBitmap;
var
LogX: Integer;
rc: TRect;
Range: TFormatRange;
Bmp: TBitmap;
begin
Bmp:=TBitmap.Create;
Bmp.Canvas.Brush.Color:=RichEdit_.Color;
LogX := Screen.PixelsPerInch;
rc := Classes.Rect(RichEdit_.ClientRect.Left * 1440 div LogX, RichEdit_.ClientRect.Top * 1440 div LogX,
RichEdit_.ClientRect.Right * 1440 div LogX, RichEdit_.ClientRect.Bottom * 1440 div LogX);
SetBkMode(Bmp.Canvas.Handle, Transparent);
Bmp.Width:=RichEdit_.ClientWidth;
Bmp.Height:=RichEdit_.ClientHeight;
Range.hdc:=Bmp.Canvas.Handle;
Range.hdcTarget:=Range.hdc;
Range.rc:=rc;
Range.chrg.cpMin:=0;
Range.chrg.cpMax:=-1;
RichEdit_.Perform(EM_FORMATRANGE, Integer(True), Integer(@Range));
RichEdit_.Perform(EM_FORMATRANGE, 0, 0);
result:= Bmp;
end;
но получаем НЕ УВЕЛИЧЕННЫЙ зумом текст(((
Помогите советом ПЛЗ!!!!
Заранее спасибо!!!
← →
MetalFan © (2004-03-11 17:26) [1]сорьки, описался - сообщение:
EM_SETZOOM
← →
Sentinel © (2004-03-11 17:56) [2]Делай масштабирование внутри функции снимка. У меня тоже не работает
← →
MBo © (2004-03-11 18:00) [3]А почему он должен увеличиваться? Никаких указаний в MSDN на то, что SETZOOM делает что-то, кроме изменения отображения, нет.
← →
MetalFan © (2004-03-11 18:03) [4]
> Sentinel © (11.03.04 17:56) [2]
> Делай масштабирование внутри функции снимка. У меня тоже
> не работает
простите за глупый вопрос - а как?
← →
MetalFan © (2004-03-11 18:23) [5]HELP!
← →
Sentinel © (2004-03-11 18:36) [6]Ну, например, после строки RichEdit_.Perform(EM_FORMATRANGE, Integer(True), Integer(@Range));
with Bmp do
StretchBlt( Canvas.Handle, 0, 0, Width*2, Height*2, Canvas.Handle, 0, 0, Width, Height, SRCCOPY );
← →
MetalFan © (2004-03-11 18:47) [7]
> Sentinel © (11.03.04 18:36) [6]
> Ну, например, после строки RichEdit_.Perform(EM_FORMATRANGE,
> Integer(True), Integer(@Range));
> with Bmp do
> StretchBlt( Canvas.Handle, 0, 0, Width*2, Height*2, Canvas.Handle,
> 0, 0, Width, Height, SRCCOPY );
не выход... картинка увеличивается некрасиво!
да и не так выглядит, как после zoom"a
наверное придется в microsoft писать))))
← →
MetalFan © (2004-03-12 09:27) [8]опять тишина...
что, безвыходное положение?
← →
Serge © (2004-03-12 09:30) [9]Безвыходных положений не бывает. Всегда есть какой-то выход - или ... или :о)
Страницы: 1 вся ветка
Текущий архив: 2004.04.04;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.025 c