ChangeLog Make monthcal send its notifications to the parent window passed to it in CREATESTRUCT. Based on a treeview patch by Igor Grahek. Index: dlls/comctl32/monthcal.c =================================================================== RCS file: /var/cvs/wine/dlls/comctl32/monthcal.c,v retrieving revision 1.42 diff -u -r1.42 monthcal.c --- dlls/comctl32/monthcal.c 22 Sep 2003 21:32:33 -0000 1.42 +++ dlls/comctl32/monthcal.c 19 Nov 2003 05:35:32 -0000 @@ -104,6 +104,7 @@ RECT days; /* calendar area */ RECT weeknums; /* week numbers at left side */ RECT todayrect; /* `today: xx/xx/xx' text rect */ + HWND hwndNotify; /* Window to receive the notifications */ HWND hWndYearEdit; /* Window Handle of edit box to handle years */ HWND hWndYearUpDown;/* Window Handle of updown box to handle years */ } MONTHCAL_INFO, *LPMONTHCAL_INFO; @@ -1304,7 +1305,7 @@ nmds.cDayState = infoPtr->monthRange; nmds.prgDayState = Alloc(infoPtr->monthRange * sizeof(MONTHDAYSTATE)); - SendMessageA(GetParent(hwnd), WM_NOTIFY, + SendMessageA(infoPtr->hwndNotify, WM_NOTIFY, (WPARAM)nmds.nmhdr.idFrom, (LPARAM)&nmds); for(i=0; i<infoPtr->monthRange; i++) infoPtr->monthdayState[i] = nmds.prgDayState[i]; @@ -1335,7 +1336,7 @@ nmds.prgDayState = Alloc (infoPtr->monthRange * sizeof(MONTHDAYSTATE)); - SendMessageA(GetParent(hwnd), WM_NOTIFY, + SendMessageA(infoPtr->hwndNotify, WM_NOTIFY, (WPARAM)nmds.nmhdr.idFrom, (LPARAM)&nmds); for(i=0; i<infoPtr->monthRange; i++) infoPtr->monthdayState[i] = nmds.prgDayState[i]; @@ -1489,7 +1490,7 @@ MONTHCAL_CopyTime(&nmsc.stSelStart, &infoPtr->minSel); MONTHCAL_CopyTime(&nmsc.stSelEnd, &infoPtr->maxSel); - SendMessageA(GetParent(hwnd), WM_NOTIFY, + SendMessageA(infoPtr->hwndNotify, WM_NOTIFY, (WPARAM)nmsc.nmhdr.idFrom,(LPARAM)&nmsc); MONTHCAL_CopyTime(&ht.st, &selArray[0]); @@ -1555,9 +1556,9 @@ nmhdr.hwndFrom = hwnd; nmhdr.idFrom = GetWindowLongA( hwnd, GWL_ID); nmhdr.code = NM_RELEASEDCAPTURE; - TRACE("Sent notification from %p to %p\n", hwnd, GetParent(hwnd)); + TRACE("Sent notification from %p to %p\n", hwnd, infoPtr->hwndNotify); - SendMessageA(GetParent(hwnd), WM_NOTIFY, + SendMessageA(infoPtr->hwndNotify, WM_NOTIFY, (WPARAM)nmhdr.idFrom, (LPARAM)&nmhdr); nmsc.nmhdr.hwndFrom = hwnd; @@ -1566,7 +1567,7 @@ MONTHCAL_CopyTime(&nmsc.stSelStart, &infoPtr->minSel); MONTHCAL_CopyTime(&nmsc.stSelEnd, &infoPtr->maxSel); - SendMessageA(GetParent(hwnd), WM_NOTIFY, + SendMessageA(infoPtr->hwndNotify, WM_NOTIFY, (WPARAM)nmsc.nmhdr.idFrom, (LPARAM)&nmsc); /* redraw if necessary */ @@ -1880,6 +1881,8 @@ ERR( "pointer assignment error!\n"); return 0; } + + infoPtr->hwndNotify = ((LPCREATESTRUCTW)lParam)->hwndParent; infoPtr->hFont = GetStockObject(DEFAULT_GUI_FONT); GetObjectA(infoPtr->hFont, sizeof(LOGFONTA), &logFont); -- Dimi.