Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
En nedrullningsbara knapp kan ge användarna en lista med alternativ. Om du vill skapa det här knappformatet anger du BTNS_DROPDOWN formatmall (kallas även TBSTYLE_DROPDOWN för kompatibilitet med tidigare versioner av de vanliga kontrollerna). Om du vill visa en nedrullningsbar knapp med en pil måste du också ange verktygsfältstilen TBSTYLE_EX_DRAWDDARROWS för verktygsfält genom att skicka ett TB_SETEXTENDEDSTYLE meddelande.
Följande bild visar en nedrullningsbar knapp "Öppna" med snabbmenyn öppen och en lista över filer. I det här exemplet har verktygsfältet formatet TBSTYLE_EX_DRAWDDARROWS.
Följande bild visar samma verktygsfält, den här gången utan TBSTYLE_EX_DRAWDDARROWS stil.
När användarna klickar på en verktygsfältsknapp som använder BTNS_DROPDOWN formatmall skickar verktygsfältskontrollen det överordnade fönstret en TBN_DROPDOWN meddelandekod.
Vad du behöver veta
Teknologier
Förutsättningar
- C/C++
- Programmering av Windows-användargränssnitt
Instruktioner
Hantera en listruteknapp
Följande kodexempel visar hur ett program kan stödja en listruteknapp i en verktygsfältskontroll.
BOOL DoNotify(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
#define lpnm ((LPNMHDR)lParam)
#define lpnmTB ((LPNMTOOLBAR)lParam)
switch(lpnm->code)
{
case TBN_DROPDOWN:
{
// Get the coordinates of the button.
RECT rc;
SendMessage(lpnmTB->hdr.hwndFrom, TB_GETRECT, (WPARAM)lpnmTB->iItem, (LPARAM)&rc);
// Convert to screen coordinates.
MapWindowPoints(lpnmTB->hdr.hwndFrom, HWND_DESKTOP, (LPPOINT)&rc, 2);
// Get the menu.
HMENU hMenuLoaded = LoadMenu(g_hinst, MAKEINTRESOURCE(IDR_POPUP));
// Get the submenu for the first menu item.
HMENU hPopupMenu = GetSubMenu(hMenuLoaded, 0);
// Set up the pop-up menu.
// In case the toolbar is too close to the bottom of the screen,
// set rcExclude equal to the button rectangle and the menu will appear above
// the button, and not below it.
TPMPARAMS tpm;
tpm.cbSize = sizeof(TPMPARAMS);
tpm.rcExclude = rc;
// Show the menu and wait for input.
// If the user selects an item, its WM_COMMAND is sent.
TrackPopupMenuEx(hPopupMenu,
TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_VERTICAL,
rc.left, rc.bottom, g_hwndMain, &tpm);
DestroyMenu(hMenuLoaded);
return (FALSE);
}
}
return FALSE;
}
Relaterade ämnen