Implemented processing of PSM_SETCURSELID message.
diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c index a496feb..720d3cf 100644 --- a/dlls/comctl32/propsheet.c +++ b/dlls/comctl32/propsheet.c
@@ -138,6 +138,7 @@ int index, int skipdir, HPROPSHEETPAGE hpage); +static void PROPSHEET_SetCurSelId(HWND hwndDlg, int id); static LRESULT PROPSHEET_QuerySiblings(HWND hwndDlg, WPARAM wParam, LPARAM lParam); static BOOL PROPSHEET_AddPage(HWND hwndDlg, @@ -1808,6 +1809,25 @@ } /****************************************************************************** + * PROPSHEET_SetCurSelId + * + * Selects the page, specified by resource id. + */ +static void PROPSHEET_SetCurSelId(HWND hwndDlg, int id) +{ + int idx; + PropSheetInfo* psInfo = + (PropSheetInfo*) GetPropW(hwndDlg, PropSheetInfoStr); + + idx = PROPSHEET_FindPageByResId(psInfo, id); + if (idx < psInfo->nPages ) + { + if (PROPSHEET_CanSetCurSel(hwndDlg) != FALSE) + PROPSHEET_SetCurSel(hwndDlg, idx, 1, 0); + } +} + +/****************************************************************************** * PROPSHEET_SetTitleA */ static void PROPSHEET_SetTitleA(HWND hwndDlg, DWORD dwStyle, LPCSTR lpszText) @@ -2786,8 +2806,8 @@ return TRUE; case PSM_SETCURSELID: - FIXME("Unimplemented msg PSM_SETCURSELID\n"); - return FALSE; + PROPSHEET_SetCurSelId(hwnd, (int)lParam); + return TRUE; case PSM_SETFINISHTEXTW: PROPSHEET_SetFinishTextW(hwnd, (LPCWSTR) lParam);