Свойства оконных классов применяются ко всем окнам этого класса. Именно поэтому они и называются классовыми свойствами. Это выглядит как очевидная вещь, когда её облекают в слова, но я видел множество "решений", которые теряют из вида этот простой факт.
Все свойства, устанавливаемые в записях
TWndClass
(или TWndClassEx
) являются свойствами оконного класса, равно как и свойства, доступ к которым происходит через Get
/SetClassWord
/Long
/LongPtr
. Это означает, что когда вы меняете эти свойства, то это изменение затрагивает весь оконный класс. К примеру, если вы пишете:
SetClassLongPtr(hwnd, GCLP_HCURSOR, LONG_PTR(hcurNew));то вы не просто меняете курсор окна
hwnd
. Вы меняете курсор всех окон того же оконного класса, что и оконный класс hwnd
. К примеру, если hwnd
является описателем элементом управления edit, то этим вы измените курсор во всех edit-ах!Но что если вам нужно изменить классовое свойство только для одного окна, вместо всех окон?
Если вы хотите изменить меню, фон, курсор или значок конкретного окна, то вы можете заместить умолчания класса на уровне окна:
Свойство | Метод |
---|---|
Меню | SetMenu(hwnd, hmenuNew) + удалить старое меню |
Фон | Заместить WM_ERASEBKGND |
Курсор | Заместить WM_SETCURSOR |
Иконка | SendMessage(hwnd, WM_SETICON, iconSize, LPARAM(hiconNew)); |
Прим.пер.: вероятно, людей смущает тот факт, что функции Get/SetClassXYZ принимают аргументом окно, а не оконный класс.
Комментариев нет:
Отправить комментарий
Можно использовать некоторые HTML-теги, например:
<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>
Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.
Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.
Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.
Примечание. Отправлять комментарии могут только участники этого блога.