Giuliano Suminsky a écrit :
> Someone alredy have succefuly created a pager control?
A sample =>
// Generic Toolbar Buttons
TBBUTTON tbb[] = {
{STD_CUT, 0, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_COPY, 1, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_PASTE, 2, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_UNDO, 3, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_REDOW, 4, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_DELETE, 5, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_DELETE, 6, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_FILENEW, 7, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_FILEOPEN, 8, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_FILESAVE, 9, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_PRINTPRE, 10, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_PROPERTIES, 11, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_HELP, 12, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_FIND, 13, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_REPLACE, 14, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{STD_PRINT, 15, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0}
};
int nButtonCount = sizeof(tbb)/sizeof(tbb[0]);
// Initialization
INITCOMMONCONTROLSEX icc;
icc.dwSize = sizeof(INITCOMMONCONTROLSEX);
icc.dwICC = ICC_PAGESCROLLER_CLASS; InitCommonControlsEx(&icc);
// Windows creation
hWndPager = CreateWindowEx(0, WC_PAGESCROLLER, NULL,
WS_BORDER | WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS |
PGS_HORZ, 100, 100, 250, 32, hWnd, (HMENU) 0, hInst, NULL);
hWndToolbar = CreateToolbarEx(hWndPager, WS_CHILD | WS_VISIBLE |
TBSTYLE_FLAT | CCS_NORESIZE, 100, 6, (HINSTANCE)HINST_COMMCTRL,
IDB_STD_LARGE_COLOR,(LPCTBBUTTON)tbb, nButtonCount, 0, 0, 0, 0,
sizeof(TBBUTTON));
SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
SendMessage(hWndPager, PGM_SETCHILD, 0, (LPARAM)hWndToolbar);
SendMessage(hWndPager, PGM_RECALCSIZE, 0, 0L);
// Notifications
case WM_NOTIFY:
{
LPNMHDR pnmh = (LPNMHDR) lParam;
switch(pnmh->code)
{
case PGN_CALCSIZE:
{
LPNMPGCALCSIZE pCalcSize = (LPNMPGCALCSIZE)lParam;
switch(pCalcSize->dwFlag)
{
case PGF_CALCWIDTH:
{
SIZE size;
SendMessage(hWndToolbar, TB_GETMAXSIZE, 0, (LPARAM)&size);
pCalcSize->iWidth =
size.cx;
}
break;
}
}
break;
case PGN_SCROLL:
{
LPNMPGSCROLL pnms = (LPNMPGSCROLL) lParam;
pnms->iScroll = 30;
}
break;
}
}
break;