我有一个数字白板项目,已经完成了普通笔的功能,现在需要模拟荧光笔的工作。
if drawingNow then
Image1.Canvas.LineTo(x, y);
Delphi中没有透明度设置。我在GDI中找到了AlphaBlend
函数http://msdn.microsoft.com/en-us/library/dd183351.aspx
但是我不知道如何使用它来模拟荧光笔。 那么,如何利用这个函数来模拟荧光笔?
我有一个数字白板项目,已经完成了普通笔的功能,现在需要模拟荧光笔的工作。
if drawingNow then
Image1.Canvas.LineTo(x, y);
Delphi中没有透明度设置。我在GDI中找到了AlphaBlend
函数http://msdn.microsoft.com/en-us/library/dd183351.aspx
但是我不知道如何使用它来模拟荧光笔。 那么,如何利用这个函数来模拟荧光笔?
类似以下内容
Canvas.Pen.Color := clYellow;
Canvas.Pen.Width := 12;
Canvas.Pen.Mode := pmMask;
Canvas.LineTo(sth, sth);
procedure TForm4.FormPaint(Sender: TObject);
const
S = 'Jag heter Andreas Rejbrand och bor '
+ 'i Katrineholm, 119 kilometer från Stockholm. Jag studerar för närvarande på '
+'masterprogrammet i fysik (med lika mycket matematik) '
+ 'vid Linköpings universitet, där jag också arbetar som lärare i matematik vid '
+'Matematiska institutionen (MAI). Bland mina största intressen återfinnes också '
+'just matematiken och fysiken. Matematiken är '
+'kanske människans viktigaste vetenskap, ty alla andra vetenskaper använder den. '
+'I själva verket använder man matematik varje '
+'gång man drar en slutsats. Mer abstrakt matematik än vad man finner i '
+'vardagslivet har också möjliggjort all vår tekniska (och kulturella!) '
+'utveckling. Naturvetenskapen, å sin sida, med fysiken i '
+'spetsen, erbjuder en unik förståelse av hela universums natur - allt från '
+'universums födelse, struktur och moderna innehåll i form av bl.'
+'a. stjärnor, planeter och asteroider, ända ner till utvecklingen och funktionen '
+'hos jordens alla organismer - från de allra första mikroorganismerna till '
+'den mer komplexa '
+'människokroppen. Naturvetenskapen ger, förutom förståelsens intellektuella '
+'stimulans i sig, vardagsapplikationer till både nytta och nöje likväl som en '
+'korrekt bild av hur allt i naturen förhåller sig, '
+'vilket kan ge rationaliserade värderingar i samhället.';
var
R: TRect;
St: string;
begin
St := S;
R := ClientRect;
Canvas.TextRect(R, St, [tfWordBreak]);
Canvas.Pen.Color := clYellow;
Canvas.Pen.Width := 12;
Canvas.Pen.Mode := pmMask;
Canvas.MoveTo(0, 20);
Canvas.LineTo(ClientWidth - 8, 20);
end;
if drawingNow = True then
而不是if drawingNow then
?这就像是在问某人“语句‘你饿了吗’是否为真?”而不是简单地问“你饿了吗?”。 - Andreas RejbrandCanvas.DrawRect
),然后再写文本。 - GolezTrol