Здравствуйте, пффф, Вы писали:
PD>>Надо.
П>Аргументируй
Ниже было.
>>>Я так понимаю, что при разрушении hMemDc он разрушит тот hBitmap, который в него выбран — т.е. тот, который я создал и выбрал в DC.
PD>>Не разрушит. Это не деструктор. Надо для hMemBmp делать DeleteObject, а для того, чтобы он сработал, надо, чтобы hMemBmp не была выбрана в контексте
П>Почему не разрушит? При создании HDC там же откуда-то появляется дефолтный hBitmap? Я полагаю, что он создаётся вполне стандартными средствами. Ну, может, там унутре есть функция с доп параметром bool allowDestroySelectedObj, что в наружу не прокинуто, или делается SelectObject с нулевым hBitmap, освобождая дефолтный и позволяя его удаление.
Ты можешь предполагать что хочешь, но это стандартный прием. Если хочешь подробности, то
https://www.labirint.ru/books/20294/
PD>>Do not delete a drawing object (pen or brush) while it is still selected into a DC.
PD>>https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-deleteobject
П>Это я в курсе. Но это снаружи, а как унутре, кто знает?
Фень Юань в руки, там как раз о том, что внутри.
>>>А hOldMemBmp я сам разрушу.
PD>>А ее разрушать не надо — ты ее не создавал, она сама создалась при создании hMemDC.
П>Так создалась скорее всего через стандартные механизмы.
Не ты ее создавал и не надо ее уничтожать.
П>Я на самом деле что-то не заметил нигде запрета такого способа работы с GDI ресурсами.
П>Ну и пока сделал именно так — всё работает, ничего не падает, GDI ресурсы вроде не текут, всё нормально
Бога ради.