Отрисовываем картинку из ресурса на форме:
Code: |
procedure ShowPicture;
function Rect(Left, Top, Right, Bottom: Integer): TRect; begin Result.Left := Left; Result.Top := Top; Result.Right := Right; Result.Bottom := Bottom; end;
var Bitmap: HBITMAP; BitmapSize: TSize; DC, BitmapDC, OldDC: HDC; bLeft, bTop: Cardinal; _Rect: TRect; S: String; Pen: HPEN; begin Bitmap := LoadBitmap(HInstance, MAKEINTRESOURCE(200)); if Bitmap <> 0 then try BitmapSize := PictureSize; DC := GetDC(Handle); try BitmapDC := CreateCompatibleDC(DC); try OldDC := SelectObject(BitmapDC, Bitmap); try bLeft := (Width - BitmapSize.cx); bTop := 0; StretchBlt(DC, 0, 0, bLeft, BitmapSize.cy, BitmapDC, 0, 0, 1, BitmapSize.cy, SRCCOPY); BitBlt(DC, bLeft, bTop, BitmapSize.cx, BitmapSize.cy, BitmapDC, 0, 0, SRCCOPY);
SetBkMode(DC, OPAQUE); if hFontBold <> 0 then SelectObject(DC, hFontBold); S := INFO1; _Rect := Rect(10, 6, 230, 31); DrawText(DC, PChar(S), Length(S), _Rect, DT_WORDBREAK);
if hFontNormal <> 0 then SelectObject(DC, hFontNormal); S := INFO2; _Rect := Rect(10, 40, 280, 70); DrawText(DC, PChar(S), Length(S), _Rect, DT_WORDBREAK + DT_NOCLIP); S := INFO3; _Rect := Rect(10, 55, 280, 100); DrawText(DC, PChar(S), Length(S), _Rect, DT_WORDBREAK + DT_NOCLIP);
Pen := CreatePen(PS_SOLID, 1, GetSysColor(COLOR_BTNSHADOW)); try SelectObject(DC, Pen); MoveToEx(DC, 6, 127, nil); LineTo(DC, 349, 127); finally DeleteObject(Pen); end;
Pen := CreatePen(PS_SOLID, 1, GetSysColor(COLOR_BTNHIGHLIGHT)); try SelectObject(DC, Pen); MoveToEx(DC, 348, 128, nil); LineTo(DC, 5, 128); finally DeleteObject(Pen); end;
finally SelectObject(OldDC, Bitmap); end; finally DeleteDC(BitmapDC); end; finally ReleaseDC(Handle, DC); end; finally DeleteObject(Bitmap); end; end; |
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!