WinAPI:: SelectObject - Как виндов определяет какой объект нужно заменить?

Как при вызове функции SelectObject, виндовс определяет какой атрибут контекста нужно заменить? Например передается новый объект перо, (читаю Щупака, дошел только до перьев, там написано что для функции они все являются типа HGDIOBJ).
А как виндовс определи что нужно заменить именно перо, а не кисть, шрифт и тому подобное?

Дополнено (1). Ведь они все принимаются как HGDIOBJ

Дополнено (2). И зачем их удалять?
Вызовом функции DeletObject, если он уже заменил значения атрибута контекста?

Дополнено (3). Помогите разобраться

SelectObject: указанный объект заменят предыдущий того же типа. Кисть заменяет предыдущую кисть, шрифт заменяет шрифт и так далее
DeletObject - это парная функция для создания объекта. Например, мы вызвали CreateSolidBrush - создали кисть. Потом этот объект надо удалить. Если объект получен вызовом функции GetStockObject, его удалять не нужно (но не запрещено).

Добавить комментарий