Доброе время суток! Вопрос следующий: Можно ли как нибудь заставить windows посылать абсолютно все сообщения детскому котролу со стилем WS_DISABLED, а не перенаправлять эти сообщения родительскому окну? К примеру WM_[L/R/M]BUTTON[DOWN/UP]? Я переназначаю WNDPROC с помощью SetWindowLong, к примеру у STATIC и BUTTON.
Нет, это зашито в коде системы и это правильно. Иначе бы, к примеру, по заблокированным кнопкам можно было щелкать, что противоречит самой концепции disabled-окна.
Между "абсолютно все сообщения" и "К примеру WM_[L/R/M]BUTTON[DOWN/UP]" есть все же некоторая разница И если приспичит, то и по заблокированным кнопкам можно пощелкать: Код (Text): .elseif uMsg==WM_LBUTTONDOWN ; ( || uMsg==WM_RBUTTONDOWN || uMsg==WM_MBUTTONDOWN || uMsg==WM_LBUTTONUP || uMsg==WM_RBUTTONUP || uMsg==WM_MBUTTONUP ) invoke GetWindowRect,hwbtn,addr rt invoke MapWindowPoints,0,hWnd,addr rt,2 mov eax,lParam mov ecx,eax and eax,0ffffh shr ecx,16 invoke PtInRect,addr rt,eax,ecx test eax,eax jz @f invoke SendMessage,hwbtn,uMsg,wParam,lParam xor eax,eax .else @@: invoke DefWindowProc,hWnd,uMsg,wParam,lParam .endif Грубо, без вылизывания: