MFC
TextOut metodunu kullanırız. Şöyle yaparız.
Belirtilen alan içine belirtilen font ve brush ile metin yazar. Şöyle yaparız.
Sadece başlangıç noktasını belirterek şöyle yaparız.
Control bileşeninin 0,0 noktasına yazmak yeterli. Örnek:
Başlangıç noktası Control bileşeninin yüksekliği - font yüksekliğinden bir kaç pixel daha az olmalı. Örnek:
Yazılmak istenen string'in uzunluğu kadar geriden başlamak lazım. Örnek:
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:
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 - RectangleBelirtilen 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 yazmakControl bileşeninin 0,0 noktasına yazmak yeterli. Örnek:
string text;Bir ekran bileşeninin sağ alt köşesine yazmak
Control c;
Font font = new Font("Arial", 8);
Brush brush = Brushes.Black;
Graphics g = c.CreateGraphics();
g.DrawString (text,font,brush,0,0);
Başlangıç noktası Control bileşeninin yüksekliği - font yüksekliğinden bir kaç pixel daha az olmalı. Örnek:
string text;Bir ekran bileşeninin sağ üst köşesine yazmak
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);
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