-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtoolbar
62 lines (51 loc) · 2.49 KB
/
toolbar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
TBBUTTON tbButtons[] = {
{ 0, IDM_NEW, TBSTATE_ENABLED, TBSTYLE_BUTTON, { 0 }, 0, 0 },
{ 1, IDM_OPEN, TBSTATE_ENABLED, TBSTYLE_BUTTON, { 0 }, 0, 0 },
{ 2, 0, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_DROPDOWN, { 0 }, 0, 0 },
{ 3, IDM_SAVE, TBSTATE_ENABLED, TBSTYLE_BUTTON, { 0 }, 0, 0 },
{ 4, 0, TBSTATE_ENABLED, TBSTYLE_SEP, { 0 }, 0, 0 },
{ 5, IDM_HELP, TBSTATE_ENABLED, TBSTYLE_BUTTON, { 0 }, 0, 0 }
};
TBBUTTONINFO tbbi = { sizeof(TBBUTTONINFO) };
tbbi.dwMask = TBIF_STYLE | TBIF_STATE;
tbbi.fsStyle = TBSTYLE_BUTTON | TBSTYLE_DROPDOWN;
tbbi.fsState = TBSTATE_ENABLED;
SendMessage(hwndToolbar, TB_SETBUTTONINFO, IDM_DROPDOWN, (LPARAM)&tbbi);
HMENU hMenu = CreatePopupMenu();
InsertMenu(hMenu, 0, MF_BYPOSITION | MF_STRING, IDM_MENUITEM1, TEXT("菜单项1"));
InsertMenu(hMenu, 1, MF_BYPOSITION | MF_STRING, IDM_MENUITEM2, TEXT("菜单项2"));
MENUINFO mi = { sizeof(MENUINFO) };
mi.fMask = MIM_STYLE;
mi.dwStyle = MNS_AUTODISMISS | MNS_MODELESS;
SetMenuInfo(hMenu, &mi);
MENUITEMINFO mii = { sizeof(MENUITEMINFO) };
mii.fMask = MIIM_SUBMENU | MIIM_STRING;
mii.hSubMenu = hMenu;
mii.dwTypeData = TEXT("下拉菜单");
mii.cch = lstrlen(mii.dwTypeData);
InsertMenuItem(hMenu, 0, TRUE, &mii);
tbButtons[2].dwData = (DWORD_PTR)hMenu;
tbButtons[2].fsState |= TBSTATE_ENABLED;
tbButtons[2].fsStyle |= TBSTYLE_DROPDOWN;
SendMessage(hwndToolbar, TB_ADDBUTTONS, sizeof(tbButtons)/sizeof(TBBUTTON), (LPARAM)&tbButtons);
----------------------------------------------------------------------------------------------------------------------------
// 创建下拉菜单
HMENU hPopupMenu = CreatePopupMenu();
AppendMenu(hPopupMenu, MF_STRING, ID_MENUITEM1, L"Menu Item 1");
AppendMenu(hPopupMenu, MF_STRING, ID_MENUITEM2, L"Menu Item 2");
// 将下拉菜单关联到工具栏按钮
TBBUTTONINFO tbButtonInfo;
ZeroMemory(&tbButtonInfo, sizeof(tbButtonInfo));
tbButtonInfo.cbSize = sizeof(tbButtonInfo);
tbButtonInfo.dwMask = TBIF_STYLE;
SendMessage(hWndToolbar, TB_GETBUTTONINFO, ID_BUTTON2, (LPARAM)&tbButtonInfo);
tbButtonInfo.fsStyle |= TBSTYLE_DROPDOWN;
SendMessage(hWndToolbar, TB_SETBUTTONINFO, ID_BUTTON2, (LPARAM)&tbButtonInfo);
SendMessage(hWndToolbar, TB_SETDROPDOWNSTATE, TRUE, 0);
SendMessage(hWndToolbar, TB_SETDROPDOWNGAP, 0, 0);
SendMessage(hWndToolbar, TB_SETPARENT, (WPARAM)hWndParent, 0);
SendMessage(hWndToolbar, TB_SETWINDOWTHEME, 0, (LPARAM)L"Explorer");
// 显示下拉菜单
RECT rect;
SendMessage(hWndToolbar, TB_GETRECT, ID_BUTTON2, (LPARAM)&rect);
ClientToScreen(hWndToolbar, (LPPOINT)&rect.left。