Allow the application to subclass a buddy edit (spotted by Guy

L. Albertelli).
This commit is contained in:
Dimitrie O. Paun 2002-07-19 00:27:52 +00:00 committed by Alexandre Julliard
parent 5db08a9ebe
commit 7229935023
1 changed files with 3 additions and 4 deletions

View File

@ -447,7 +447,7 @@ static BOOL UPDOWN_SetBuddy (UPDOWN_INFO* infoPtr, HWND bud)
DWORD dwStyle = GetWindowLongW (infoPtr->Self, GWL_STYLE); DWORD dwStyle = GetWindowLongW (infoPtr->Self, GWL_STYLE);
RECT budRect; /* new coord for the buddy */ RECT budRect; /* new coord for the buddy */
int x, width; /* new x position and width for the up-down */ int x, width; /* new x position and width for the up-down */
WNDPROC baseWndProc, currWndProc; WNDPROC baseWndProc;
CHAR buddyClass[40]; CHAR buddyClass[40];
/* Is it a valid bud? */ /* Is it a valid bud? */
@ -477,8 +477,7 @@ static BOOL UPDOWN_SetBuddy (UPDOWN_INFO* infoPtr, HWND bud)
/* Note that I don't clear the BUDDY_SUPERCLASS_WNDPROC property /* Note that I don't clear the BUDDY_SUPERCLASS_WNDPROC property
when we reset the upDown ctrl buddy to another buddy because it is not when we reset the upDown ctrl buddy to another buddy because it is not
good to break the window proc chain. */ good to break the window proc chain. */
currWndProc = (WNDPROC) GetWindowLongW(bud, GWL_WNDPROC); if (!GetPropA(bud, BUDDY_SUPERCLASS_WNDPROC)) {
if (currWndProc != UPDOWN_Buddy_SubclassProc) {
baseWndProc = (WNDPROC)SetWindowLongW(bud, GWL_WNDPROC, (LPARAM)UPDOWN_Buddy_SubclassProc); baseWndProc = (WNDPROC)SetWindowLongW(bud, GWL_WNDPROC, (LPARAM)UPDOWN_Buddy_SubclassProc);
SetPropA(bud, BUDDY_SUPERCLASS_WNDPROC, (HANDLE)baseWndProc); SetPropA(bud, BUDDY_SUPERCLASS_WNDPROC, (HANDLE)baseWndProc);
} }
@ -939,7 +938,7 @@ static LRESULT WINAPI UpDownWindowProc(HWND hwnd, UINT message, WPARAM wParam,
return temp; return temp;
default: default:
if (message >= WM_USER) if ((message >= WM_USER) && (message < WM_APP))
ERR("unknown msg %04x wp=%04x lp=%08lx\n", message, wParam, lParam); ERR("unknown msg %04x wp=%04x lp=%08lx\n", message, wParam, lParam);
return DefWindowProcW (hwnd, message, wParam, lParam); return DefWindowProcW (hwnd, message, wParam, lParam);
} }