Graphics.FromHdc Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает новый Graphics из указанного дескриптора в контекст устройства.
Перегрузки
FromHdc(IntPtr, IntPtr) |
Создает новый Graphics из указанного дескриптора в контекст устройства и дескриптор на устройство. |
FromHdc(IntPtr) |
Создает новый Graphics из указанного дескриптора в контекст устройства. |
FromHdc(IntPtr, IntPtr)
- Исходный код:
- Graphics.cs
- Исходный код:
- Graphics.cs
- Исходный код:
- Graphics.cs
- Исходный код:
- Graphics.cs
- Исходный код:
- Graphics.cs
Создает новый Graphics из указанного дескриптора в контекст устройства и дескриптор на устройство.
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
nativeint
Обработка контекста устройства.
- hdevice
-
IntPtr
nativeint
Дескриптор устройства.
Возвращаемое значение
Этот метод возвращает новый Graphics для указанного контекста устройства и устройства.
Комментарии
Для освобождения Graphics и связанных ресурсов, созданных методом FromHdc, всегда следует вызывать метод Dispose.
Даже если устройство отображения имеет связанный цветной профиль ICM, GDI+ не будет использовать этот профиль по умолчанию. Чтобы включить ICM для Graphics, создайте Graphics из HDC после передачи HDC (и ICM_ON) функции SetICMMode
. Затем любой рисунок, выполненный Graphics, будет скорректирован в соответствии с профилем ICM, связанным с устройством отображения. Включение ICM приведет к снижению производительности.
Состояние контекста устройства (режим сопоставления, логическая единица и подобное) во время вызова FromHdc может повлиять на отрисовку, выполненную Graphics.
Дескриптор устройства обычно используется для запроса определенных возможностей принтера.
Применяется к
FromHdc(IntPtr)
- Исходный код:
- Graphics.cs
- Исходный код:
- Graphics.cs
- Исходный код:
- Graphics.cs
- Исходный код:
- Graphics.cs
- Исходный код:
- Graphics.cs
Создает новый Graphics из указанного дескриптора в контекст устройства.
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
nativeint
Обработка контекста устройства.
Возвращаемое значение
Этот метод возвращает новый Graphics для указанного контекста устройства.
Примеры
Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse
, который является параметром обработчика событий Paint. Код выполняет следующее действие:
Создает внутреннюю переменную типа указателя
hdc
и задает его дескриптор контексту устройства графического объекта формы.Создает новый графический объект с помощью
hdc
.Рисует прямоугольник с новым графическим объектом (на экране).
Освобождает новый графический объект с помощью
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;
}
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
Комментарии
Для освобождения Graphics и связанных ресурсов, созданных методом FromHdc, всегда следует вызывать метод Dispose.
Даже если устройство отображения имеет связанный цветной профиль ICM, GDI+ не будет использовать этот профиль по умолчанию. Чтобы включить ICM для Graphics, создайте Graphics из HDC после передачи HDC (и ICM_ON) функции SetICMMode
. Затем любой рисунок, выполненный Graphics, будет скорректирован в соответствии с профилем ICM, связанным с устройством отображения. Включение ICM приведет к снижению производительности.
Состояние контекста устройства (режим сопоставления, логическая единица и подобное) во время вызова FromHdc может повлиять на отрисовку, выполненную Graphics.