Graphics.FromHdc Graphics.FromHdc Graphics.FromHdc Graphics.FromHdc Method

Определение

Создает новый объект Graphics из указанного дескриптора для контекста устройства.Creates a new Graphics from the specified handle to a device context.

Перегрузки

FromHdc(IntPtr) FromHdc(IntPtr) FromHdc(IntPtr) FromHdc(IntPtr)

Создает новый объект Graphics из указанного дескриптора для контекста устройства.Creates a new Graphics from the specified handle to a device context.

FromHdc(IntPtr, IntPtr) FromHdc(IntPtr, IntPtr) FromHdc(IntPtr, IntPtr) FromHdc(IntPtr, IntPtr)

Создает новый объект Graphics из указанного дескриптора контекста устройства и дескриптора устройства.Creates a new Graphics from the specified handle to a device context and handle to a device.

FromHdc(IntPtr) FromHdc(IntPtr) FromHdc(IntPtr) FromHdc(IntPtr)

Создает новый объект Graphics из указанного дескриптора для контекста устройства.Creates a new Graphics from the specified handle to a device context.

public:
 static System::Drawing::Graphics ^ FromHdc(IntPtr hdc);
public static System.Drawing.Graphics FromHdc (IntPtr hdc);
static member FromHdc : nativeint -> System.Drawing.Graphics
Public Shared Function FromHdc (hdc As IntPtr) As Graphics

Параметры

hdc
IntPtr IntPtr IntPtr IntPtr

Дескриптор контекста устройства.Handle to a device context.

Возвраты

Этот метод возвращает новый объект Graphics для контекста заданного устройства.This method returns a new Graphics for the specified device context.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgs e, что Paint является параметром обработчика событий.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. Код выполняет следующее действие:The code performs the following action:

  • Создает переменную hdc внутреннего типа указателя и задает ее в качестве маркера для контекста устройства графического объекта формы.Creates an internal pointer type variable hdc and sets it to the handle to the device context of the graphics object of the form.

  • Создает новый графический объект с помощью hdc.Creates a new graphics object using hdc.

  • Рисует прямоугольник с новым графическим объектом (на экране).Draws a rectangle with the new graphics object (on the screen).

  • Освобождает новый графический объект с помощью hdc.Releases the new graphics object using hdc.

public:
   void FromHdcHdc( PaintEventArgs^ e )
   {
      // Get handle to device context.
      IntPtr hdc = e->Graphics->GetHdc();

      // Create new graphics object using handle to device context.
      Graphics^ newGraphics = Graphics::FromHdc( hdc );

      // Draw rectangle to screen.
      newGraphics->DrawRectangle( gcnew Pen( Color::Red,3.0f ), 0, 0, 200, 100 );

      // Release handle to device context and dispose of the      // Graphics object
      e->Graphics->ReleaseHdc( hdc );
      delete newGraphics;
   }
[System.Security.Permissions.SecurityPermission(
System.Security.Permissions.SecurityAction.LinkDemand, Flags = 
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]            
private void FromHdcHdc(PaintEventArgs e)
{

    // Get handle to device context.
    IntPtr hdc = e.Graphics.GetHdc();

    // Create new graphics object using handle to device context.
    Graphics newGraphics = Graphics.FromHdc(hdc);

    // Draw rectangle to screen.
    newGraphics.DrawRectangle(new Pen(Color.Red, 3), 0, 0, 200, 100);

    // Release handle to device context and dispose of the      // Graphics object
    e.Graphics.ReleaseHdc(hdc);
    newGraphics.Dispose();
}
<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, Flags := _
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Private Sub FromHdcHdc(ByVal e As PaintEventArgs)

    ' Get handle to device context.
    Dim hdc As IntPtr = e.Graphics.GetHdc()

    ' Create new graphics object using handle to device context.
    Dim newGraphics As Graphics = Graphics.FromHdc(hdc)

    ' Draw rectangle to screen.
    newGraphics.DrawRectangle(New Pen(Color.Red, 3), 0, 0, 200, 100)

    ' Release handle to device context and dispose of the Graphics 	' object
    e.Graphics.ReleaseHdc(hdc)
    newGraphics.Dispose()
End Sub

Комментарии

Следует всегда вызывать Dispose метод для Graphics освобождения FromHdc связанных ресурсов, созданных методом.You should always call the Dispose method to release the Graphics and related resources created by the FromHdc method.

Даже если устройство вывода имеет связанный цветовой профиль ICM, GDI+GDI+ по умолчанию этот профиль использовать не будет.Even if the display device has an associated ICM color profile, GDI+GDI+ will not use that profile by default. Чтобы включить ICM для Graphics, Graphics создайте из с параметром hdc после передачи в SetICMMode функцию HDC (и ICM_ON).To enable ICM for a Graphics, construct the Graphics from an HDC after you pass the HDC (and ICM_ON) to the SetICMMode function. Затем любая прорисовка, выполненная с помощью, Graphics будет скорректирована в соответствии с профилем ICM, связанным с устройством отображения.Then any drawing done by the Graphics will be adjusted according to the ICM profile associated with the display device. Включение ICM приведет к снижению производительности.Enabling ICM will result in slower performance.

Состояние контекста устройства (режим сопоставления, логическая единица и т. д.) во время вызова FromHdc может повлиять на отрисовку, Graphicsвыполненную.The state of the device context (mapping mode, logical unit, and the like) at the time you call FromHdc can affect rendering done by the Graphics.

FromHdc(IntPtr, IntPtr) FromHdc(IntPtr, IntPtr) FromHdc(IntPtr, IntPtr) FromHdc(IntPtr, IntPtr)

Создает новый объект Graphics из указанного дескриптора контекста устройства и дескриптора устройства.Creates a new Graphics from the specified handle to a device context and handle to a device.

public:
 static System::Drawing::Graphics ^ FromHdc(IntPtr hdc, IntPtr hdevice);
public static System.Drawing.Graphics FromHdc (IntPtr hdc, IntPtr hdevice);
static member FromHdc : nativeint * nativeint -> System.Drawing.Graphics
Public Shared Function FromHdc (hdc As IntPtr, hdevice As IntPtr) As Graphics

Параметры

hdc
IntPtr IntPtr IntPtr IntPtr

Дескриптор контекста устройства.Handle to a device context.

hdevice
IntPtr IntPtr IntPtr IntPtr

Дескриптор устройства.Handle to a device.

Возвраты

Этот метод возвращает новый объект Graphics для контекста заданного устройства и самого устройства.This method returns a new Graphics for the specified device context and device.

Комментарии

Следует всегда вызывать Dispose метод для Graphics освобождения FromHdc связанных ресурсов, созданных методом.You should always call the Dispose method to release the Graphics and related resources created by the FromHdc method.

Даже если устройство вывода имеет связанный цветовой профиль ICM, GDI+GDI+ по умолчанию этот профиль использовать не будет.Even if the display device has an associated ICM color profile, GDI+GDI+ will not use that profile by default. Чтобы включить ICM для Graphics, Graphics создайте из с параметром hdc после передачи в SetICMMode функцию HDC (и ICM_ON).To enable ICM for a Graphics, construct the Graphics from an HDC after you pass the HDC (and ICM_ON) to the SetICMMode function. Затем любая прорисовка, выполненная с помощью, Graphics будет скорректирована в соответствии с профилем ICM, связанным с устройством отображения.Then any drawing done by the Graphics will be adjusted according to the ICM profile associated with the display device. Включение ICM приведет к снижению производительности.Enabling ICM will result in slower performance.

Состояние контекста устройства (режим сопоставления, логическая единица и т. д.) во время вызова FromHdc может повлиять на отрисовку, Graphicsвыполненную.The state of the device context (mapping mode, logical unit, and the like) at the time you call FromHdc can affect rendering done by the Graphics.

Маркер устройства обычно используется для запроса конкретных возможностей принтера.The device handle is typically used to query specific printer capabilities.

Безопасность

SecurityPermission
для доступа к неуправляемому коду.for access to unmanaged code. Связанное перечисление: UnmanagedCode.Related enumeration: UnmanagedCode.

Применяется к