;Autor: Arctic Fox ;Ab Vista ;http://www.purebasic.fr/english/viewtopic.php?p=320427#p320427 EnableExplicit #BS_SPLITBUTTON = 12 #BCN_FIRST = -1250 #BCN_DROPDOWN = #BCN_FIRST + 2 #BCM_SETSPLITINFO = 5639 #BCSIF_GLYPH = 1 #BCSIF_IMAGE = 2 #BCSIF_STYLE = 4 #BCSIF_SIZE = 8 #BCSS_NOSPLIT = 1 #BCSS_STRETCH = 2 #BCSS_ALIGNLEFT = 4 #BCSS_IMAGE = 8 Structure NMBCDROPDOWN hdr.NMHDR rcButton.RECT EndStructure Structure BUTTON_SPLITINFO mask.i himlGlyph.i uSplitStyle.i size.SIZE EndStructure Define EventID Define SplitInfo.BUTTON_SPLITINFO Procedure WndProc(hWnd, uMsg, wParam, lParam) Protected *pDropDown.NMBCDROPDOWN = lParam, pt.POINT If uMsg = #WM_NOTIFY And *pDropDown\hdr\code = #BCN_DROPDOWN pt\x = *pDropDown\rcButton\left pt\y = *pDropDown\rcButton\bottom ClientToScreen_(GadgetID(wParam), @pt) Select wParam Case 0 DisplayPopupMenu(0, hWnd, pt\x, pt\y) Case 1 DisplayPopupMenu(1, hWnd, pt\x, pt\y) EndSelect EndIf ProcedureReturn #PB_ProcessPureBasicEvents EndProcedure If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) ButtonGadget(0, 5, 5, 125, 25, "Split button 1", #BS_SPLITBUTTON) ButtonGadget(1, 170, 5, 125, 25, "Split button 2", #BS_SPLITBUTTON) CreatePopupMenu(0) MenuItem(0, "Item 1.1") MenuItem(1, "Item 1.2") MenuItem(2, "Item 1.3") CreatePopupMenu(1) MenuItem(3, "Item 2.1") MenuItem(4, "Item 2.2") MenuItem(5, "Item 2.3") SetWindowCallback(@WndProc(), 0) SplitInfo\mask = #BCSIF_STYLE SplitInfo\uSplitStyle = #BCSS_ALIGNLEFT SendMessage_(GadgetID(1), #BCM_SETSPLITINFO, 0, @SplitInfo) Repeat EventID=WaitWindowEvent() If EventID=#PB_Event_Menu Select EventGadget() Case 0 SetGadgetText(0, "Split button 1 (1.1)") Case 1 SetGadgetText(0, "Split button 1 (1.2)") Case 2 SetGadgetText(0, "Split button 1 (1.3)") Case 3 SetGadgetText(1, "Split button 2 (2.1)") Case 4 SetGadgetText(1, "Split button 2 (2.2)") Case 5 SetGadgetText(1, "Split button 2 (2.3)") EndSelect EndIf Until EventID = #PB_Event_CloseWindow EndIf ; IDE Options = PureBasic 5.31 (Windows - x64) ; CursorPosition = 3 ; Folding = - ; EnableUnicode ; EnableXP ; EnableUser ; EnableCompileCount = 0 ; EnableBuildCount = 0