comctl32: Set the sheet caption before invoking the sheet callback and before creating the pages.
This commit is contained in:
parent
6381e458c2
commit
517b85f989
|
@ -3427,21 +3427,6 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
}
|
||||
}
|
||||
|
||||
if (psInfo->useCallback)
|
||||
(*(psInfo->ppshheader.pfnCallback))(hwnd,
|
||||
PSCB_INITIALIZED, (LPARAM)0);
|
||||
|
||||
idx = psInfo->active_page;
|
||||
ppshpage = (LPCPROPSHEETPAGEW)psInfo->proppage[idx].hpage;
|
||||
psInfo->active_page = -1;
|
||||
|
||||
PROPSHEET_SetCurSel(hwnd, idx, 1, psInfo->proppage[idx].hpage);
|
||||
|
||||
/* doing TCM_SETCURSEL seems to be needed even in case of PSH_WIZARD,
|
||||
* as some programs call TCM_GETCURSEL to get the current selection
|
||||
* from which to switch to the next page */
|
||||
SendMessageW(hwndTabCtrl, TCM_SETCURSEL, psInfo->active_page, 0);
|
||||
|
||||
if (!HIWORD(psInfo->ppshheader.pszCaption) &&
|
||||
psInfo->ppshheader.hInstance)
|
||||
{
|
||||
|
@ -3457,6 +3442,22 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
psInfo->ppshheader.pszCaption);
|
||||
}
|
||||
|
||||
|
||||
if (psInfo->useCallback)
|
||||
(*(psInfo->ppshheader.pfnCallback))(hwnd,
|
||||
PSCB_INITIALIZED, (LPARAM)0);
|
||||
|
||||
idx = psInfo->active_page;
|
||||
ppshpage = (LPCPROPSHEETPAGEW)psInfo->proppage[idx].hpage;
|
||||
psInfo->active_page = -1;
|
||||
|
||||
PROPSHEET_SetCurSel(hwnd, idx, 1, psInfo->proppage[idx].hpage);
|
||||
|
||||
/* doing TCM_SETCURSEL seems to be needed even in case of PSH_WIZARD,
|
||||
* as some programs call TCM_GETCURSEL to get the current selection
|
||||
* from which to switch to the next page */
|
||||
SendMessageW(hwndTabCtrl, TCM_SETCURSEL, psInfo->active_page, 0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@ imagelist.ok
|
|||
monthcal.ok
|
||||
mru.ok
|
||||
progress.ok
|
||||
propsheet.ok
|
||||
propsheet.res
|
||||
subclass.ok
|
||||
tab.ok
|
||||
testlist.c
|
||||
|
|
|
@ -13,6 +13,7 @@ CTESTS = \
|
|||
monthcal.c \
|
||||
mru.c \
|
||||
progress.c \
|
||||
propsheet.c \
|
||||
subclass.c \
|
||||
tab.c \
|
||||
toolbar.c \
|
||||
|
@ -20,6 +21,8 @@ CTESTS = \
|
|||
treeview.c \
|
||||
updown.c
|
||||
|
||||
RC_SRCS = propsheet.rc
|
||||
|
||||
@MAKE_TEST_RULES@
|
||||
|
||||
### Dependencies:
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
/* Unit test suite for property sheet control.
|
||||
*
|
||||
* Copyright 2006 Huw Davies
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#define NONAMELESSUNION
|
||||
#define NONAMELESSSTRUCT
|
||||
|
||||
#include <windows.h>
|
||||
#include <commctrl.h>
|
||||
|
||||
#include "wine/test.h"
|
||||
|
||||
static int CALLBACK sheet_callback(HWND hwnd, UINT msg, LPARAM lparam)
|
||||
{
|
||||
switch(msg)
|
||||
{
|
||||
case PSCB_INITIALIZED:
|
||||
{
|
||||
char caption[256];
|
||||
GetWindowTextA(hwnd, caption, sizeof(caption));
|
||||
ok(!strcmp(caption,"test caption"), "caption: %s\n", caption);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static INT_PTR CALLBACK page_dlg_proc(HWND hwnd, UINT msg, WPARAM wparam,
|
||||
LPARAM lparam)
|
||||
{
|
||||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
HWND sheet = GetParent(hwnd);
|
||||
char caption[256];
|
||||
GetWindowTextA(sheet, caption, sizeof(caption));
|
||||
ok(!strcmp(caption,"test caption"), "caption: %s\n", caption);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_NOTIFY:
|
||||
{
|
||||
NMHDR *nmhdr = (NMHDR *)lparam;
|
||||
switch(nmhdr->code)
|
||||
{
|
||||
case PSN_APPLY:
|
||||
return TRUE;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void test_title(void)
|
||||
{
|
||||
HPROPSHEETPAGE hpsp[1];
|
||||
PROPSHEETPAGEA psp;
|
||||
PROPSHEETHEADERA psh;
|
||||
HWND hdlg;
|
||||
|
||||
memset(&psp, 0, sizeof(psp));
|
||||
psp.dwSize = sizeof(psp);
|
||||
psp.dwFlags = 0;
|
||||
psp.hInstance = GetModuleHandleW(NULL);
|
||||
psp.u.pszTemplate = "prop_page1";
|
||||
psp.u2.pszIcon = NULL;
|
||||
psp.pfnDlgProc = page_dlg_proc;
|
||||
psp.lParam = 0;
|
||||
|
||||
hpsp[0] = CreatePropertySheetPageA(&psp);
|
||||
|
||||
memset(&psh, 0, sizeof(psh));
|
||||
psh.dwSize = sizeof(psh);
|
||||
psh.dwFlags = PSH_MODELESS | PSH_USECALLBACK;
|
||||
psh.pszCaption = "test caption";
|
||||
psh.nPages = 1;
|
||||
psh.hwndParent = GetDesktopWindow();
|
||||
psh.u3.phpage = hpsp;
|
||||
psh.pfnCallback = sheet_callback;
|
||||
|
||||
hdlg = (HWND)PropertySheetA(&psh);
|
||||
DestroyWindow(hdlg);
|
||||
}
|
||||
|
||||
START_TEST(propsheet)
|
||||
{
|
||||
test_title();
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
/* Resources for the unit test suite for property sheet control.
|
||||
*
|
||||
* Copyright 2006 Huw Davies
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "windef.h"
|
||||
#include "winuser.h"
|
||||
|
||||
PROP_PAGE1 DIALOG LOADONCALL MOVEABLE DISCARDABLE 5, 43, 227, 215
|
||||
STYLE WS_POPUP | WS_CAPTION | WS_CLIPSIBLINGS | WS_VISIBLE
|
||||
CAPTION "Page1"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
{
|
||||
LTEXT "Test", -1, 10, 6, 100, 8
|
||||
}
|
Loading…
Reference in New Issue