Здравствуйте уважаемые форумчане! У меня проблемка - не могу получить из картинки, выбранной в DC, структуру
BITMAP через
GetObject. Вобщем задача узнать размеры изображения выбранного в DC. Делаю вот так:
- Код: Выделить всё
Private Function GetSize(DC As Long, ByRef W As Long, ByRef H As Long) As Boolean
Dim hBmp As Long, BT As BITMAP
If DC = 0 Then Exit Function
hBmp = GetCurrentObject(DC, OBJ_BITMAP)
If hBmp = 0 Then Exit Function
GetObject hBmp, Len(BT), BT
W = BT.bmWidth: H = BT.bmHeight
End Function
GetCurrentObject возвращает хэндл, а вот
GetObject почему то не заполняет структуру
BITMAP. В качестве hDC передаю hDC
PictureBox'а . Возможно я неправильно использую ф-цию
GetCurrentObject , потому что она возвращает какой-то другой хендл, не соответствующий свойству
Image.Handle, не
Picture.Handle.
GetLastError показывает что все ок, хотя структура BT не заполняется (если перед вызовом функции
GetCurrentObject заполнить ее какими-либо значениями, они не изменяются). Если же напрямую передавать в функцию
GetObject хендл, т.е. так:
- Код: Выделить всё
GetObject PictureBox.Image.Handle,Len(BT),BT
, то все заполняется нормально. Из этого я делаю вывод что ф-ция
GetCurrentObject возвращает что-то другое, но не хэндл картинки. Помогите пожалуйста разобратся с этим вопросом, либо же подскажите другой способ узнать размеры изображения, выбранного в DC. Заранее спасибо!