Здравствуйте. Допустим делаем креатевиндув для контрола BUTTON на главном окне и надо мне что бы кнопочка обработала другое сообщение допустим WM_USER+3 я делаю Код (Text): invoke CreateWindowEx,0,<'BUTTON'>,<'btn'>,WS_CHILD+WS_VISIBLE,10,10,110,30,[hwnd],0,[hinstance],0 mov [hbutton], eax invoke GetWindowLong, eax, GWL_WNDPROC mov [btnOldProc], eax invoke SetWindowLong, [hbutton], GWL_WNDPROC, ButtonProc Все хорошо, но если у меня 50 - 150 кнопок?! (Мне что везде свой обработчик ставить?) Или можно просто расширить контрол и зарегистрировать (RegisterClass) его в системе без использования COM? В сущности вопрос: возможно ли модифицировать окна и регистрировать их с помощью RegisterClass (Ex) на основе уже готовых решений, без использования COM?
наврядли система позволит слелать суперклассинг буттона, а если получится, то это чревато... в масм32либ есть bmpbutton функцию можно прикрутить к коду и модифицировать её по своему усмотрению:
если кнопок одного класса много, наверное желательно в секции WM_CREATE сделать регистрацию, а из самой функции её убрать
Суперклассинг определенного бутона сделать легко, но мне хотелось сделать почти то же самое, сейчас попробую обьяснить на вашем приведенном примере примере: 1. У вас регистрируеться класс окна WinClass и начинает работать функция WinMain 2. По сообщению WM_CREATE вызываеться функция BmpButtn 3. В свою очередь она регистрирует класс Bmp_Button_Class - он "пуст" т.е. в процедуре обработки сообщений какие вы напишите обработчики, такие и будут работать 4. Затем создаеться окно типа STATIC, но оно дочернее по отношению к нашему пустому классу и использует суперклассинг Я же хотел бы все тоже самое, но без создания "пустого компонента", а что бы к примеру Bmp_Button_Class уже имел готовые "унаследованные от BUTTON" обработчики сообщений, которые нужны для отображения компонента? Это возможно? Или я в делфях наигрался?))