Скажем, у меня есть дескриптор к контексту устройства (естественно в среде Windows):
HDC hdc;
Как я могу получить ширину и высоту ее?
Контекст устройства (DC) - это структура, которая определяет набор графических объектов и связанных с ними атрибутов, а также графические режимы, влияющие на вывод.
По ширине и высоте, я полагаю, вы имеете в виду нарисованное растровое изображение?
Если да, то, думаю, вы можете попробовать следующее:
BITMAP structBitmapHeader;
memset( &structBitmapHeader, 0, sizeof(BITMAP) );
HGDIOBJ hBitmap = GetCurrentObject(hDC, OBJ_BITMAP);
GetObject(hBitmap, sizeof(BITMAP), &structBitmapHeader);
//structBitmapHeader.bmWidth
//structBitmapHeader.bmHeight
Вы можете WindowFromDC (...)
получить окно контроллера домена, если оно связано с окном. Затем вы можете использовать ответ @ KevinK, чтобы получить прямо от этого клиента.
Я также мало знаю о GDI, но, похоже, GetDeviceCaps может сделать трюк.
В качестве отказа от ответственности, я ничего не знаю о GDI или о том, с чем вам приходится работать в вашем приложении. Я просто стараюсь быть полезным, если это возможно.
Тем не менее, я нашел ссылку, которая, кажется, предполагает, что уместно использовать GetClientRect
, чтобы получить размер области рисования:
RECT clientRect;
GetClientRect(hWnd,&clientRect);