Может ли кто-то чётко сказать надо ли удалять hbitmap если он был установлен в контекст, а контекст затем удалёт. т.е:
hbitmap x;
dc = createcompatibledc(smth_dc);
x = loadbitmap(instance, 'aa');
selectobject(dc, x);
...
deletedc(dc);
или всё же надо отдельно удалять так же и x(?!)...
согласно документации надо удалять каждое изображение полученое через loadbitmap, однако ясно что при удалении DC удаляются так же и все содержащиеся в нём объекты... (!!?? или не удаляются ???!)...
Здравствуйте, gst, Вы писали: gst>согласно документации надо удалять каждое изображение полученое через loadbitmap, однако ясно что при удалении DC удаляются так же и все содержащиеся в нём объекты... (!!?? или не удаляются ???!)...
не удаляются — надо делать самому. При удалении DC считается, что он находится в том виде, в каком и был создан (т.е. выбраны в него только stock объекты по умолчанию — в частности 1х1 чернобелый bitmap).
SCS
Re[2]: loadbitmap, selectobject и deleteobject ...
Здравствуйте, SCS, Вы писали:
SCS>Здравствуйте, gst, Вы писали: gst>>согласно документации надо удалять каждое изображение полученое через loadbitmap, однако ясно что при удалении DC удаляются так же и все содержащиеся в нём объекты... (!!?? или не удаляются ???!)...
SCS>не удаляются — надо делать самому. При удалении DC считается, что он находится в том виде, в каком и был создан (т.е. выбраны в него только stock объекты по умолчанию — в частности 1х1 чернобелый bitmap).
однако из той же документации следует что и stock объекты удалять стоило бы... но не обязательно...
получается надо писать своё deletedc() который будет удалять так же подобъекты всех типов?! ;(
как-то не продумано imho.
к тому же установить в два контекста одно и то же изображение, так же не всегда (если когда-либо?) удаётся :(
кстати а какое имя имеет констатна отвечающая за stock объект в виде default_bitmap, в MSDN почему-то нету такого stock объекта... :(
Re[3]: loadbitmap, selectobject и deleteobject ...
Здравствуйте, gst, Вы писали: gst>получается надо писать своё deletedc() который будет удалять так же подобъекты всех типов?! ;( gst>как-то не продумано imho.
да, это совсем не объектная модель. и реально, если забыть удалить bitmap, можно видеть утечку памяти
gst>кстати а какое имя имеет констатна отвечающая за stock объект в виде default_bitmap, в MSDN почему-то нету такого stock объекта...
практически единственный способ получить его хандл — вытащить его из вновь созданного DC, т.к. GetStockObject его не возвращает (и нет, соотвественно, его симв.имени)