8 Ekim 2016 Cumartesi

Graphics Sınıfı DrawString Metodu

MFC
TextOut metodunu kullanırız. Şöyle yaparız.
double factor = (2.0f * 3.1416f)/360.0f;
double rot = 45.0f * factor;

// Create a matrix for the transform we want (read the docs for details)
XFORM xfm = { 0.0f };
xfm.eM11 = (float)cos(rot);
xfm.eM12 = (float)sin(rot);
xfm.eM21 = (float)-sin(rot);
xfm.eM22 = (float)cos(rot);

pDC->SetGraphicsMode(GM_ADVANCED);
pDC->SetWorldTransform(&xfm);    // Tell Windows to use that transform matrix

pDC->SetBkMode(TRANSPARENT);
CRect rect{ 290, 190, 450, 230 };
CBrush red;
red.CreateSolidBrush(RGB(255, 0, 0));

pDC->FillRect(rect, &red); // Draw a red rectangle behind the text

pDC->TextOut(300, 200, L"This is a string"); // And draw the text
DrawString metodu - Rectangle
Belirtilen alan içine belirtilen font ve brush ile metin yazar. Şöyle yaparız.
RectangleF rect= new RectangleF(285, 20, 250, 250);
g.DrawString("text1",
             new Font("Verdana", 12, FontStyle.Italic), 
             Brushes.White, rect);
DrawString metodu - Başlangıç noktası
Sadece başlangıç noktasını belirterek şöyle yaparız.
string text = ...;
Font font = ...;
Graphics graphics = ...;
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
graphics.DrawString(text, font, new SolidBrush(Color.FromArgb(255, 0, 0)), 0, 0);
Başlangıç noktasını Point olarak belirtebiliriz. Şöyle yaparız.
string text = ...;
Font font = ...;

Point pt = ...;
SolidBrush brush = ...;

graphics.DrawString(text, font, brush, pt);
Bir ekran bileşeninin sol üst köşesine yazmak
Control bileşeninin 0,0 noktasına yazmak yeterli. Örnek:
string text;
Control c;
Font font = new Font("Arial", 8);
Brush brush = Brushes.Black;
Graphics g = c.CreateGraphics();
g.DrawString (text,font,brush,0,0);
Bir ekran bileşeninin sağ alt köşesine yazmak
Başlangıç noktası Control bileşeninin yüksekliği - font yüksekliğinden bir kaç pixel daha az olmalı. Örnek:
string text;
Control c;
Font font = new Font("Arial", 8);
Brush brush = Brushes.Black;
Graphics g = c.CreateGraphics();
g.DrawString (text,font,brush,0,control.Height - font.Height - 2);
Bir ekran bileşeninin sağ üst köşesine yazmak
Yazılmak istenen string'in uzunluğu kadar geriden başlamak lazım. Örnek:
string text;
Control c;
Font font = new Font("Arial", 8);
Brush brush = Brushes.Black;
Graphics g = c.CreateGraphics();
SizeF stringSize = g.MeasureString (text,font);
g.DrawString (text,font,brush,control.Width- stringSize.Width,0);

Bir ekran bileşeninin sağ alt köşesine yazmak
Yazılmak istenen string'in uzunluğu kadar geriden ve font'un büyüklüğü kadar yukarıdan başlamak lazım. Örnek:
string text;
Control c;
Font font = new Font("Arial", 8);
Brush brush = Brushes.Black;
Graphics g = c.CreateGraphics();
SizeF stringSize = g.MeasureString (text,font);
g.DrawString (text,font,brush,
                         control.Width- stringSize.Width,
                         control.Height - font.Height - 2);

Hiç yorum yok:

Yorum Gönder