(WinAPI) PB-Gadgets ansteuern
Verfasst: 29.08.2004 05:59
[ Original FAQ-Beitrag von Rob ]
Mit der [c]SendMessage_()[/c]-Funktion lassen sich Nachrichten an Gadgets schicken, die entweder etwas an ihm verändern oder einen Zustand (Größe, Status, ...) zurückliefern.
Beispiel: Größe der Toolbar ans Fenster anpassen.
1. Schritt: Gadget-Handle ermitteln:
2. Schritt
Auf die MSDN-Seite der Windows-Controls gehen, ToolBar und ToolBar Overview auswählen, ein bisschen lesen und TB_AUTOSIZE entdecken.
3. Schritt
ansehen und daraus
machen.
4. Schritt:
Das ganze in die Window-Resize-Callback-Prozedur einfügen:
Nun ändert sich die ToolBar-Begrenzungslinie zum Menü ^_^
Mit der [c]SendMessage_()[/c]-Funktion lassen sich Nachrichten an Gadgets schicken, die entweder etwas an ihm verändern oder einen Zustand (Größe, Status, ...) zurückliefern.
Beispiel: Größe der Toolbar ans Fenster anpassen.
1. Schritt: Gadget-Handle ermitteln:
Code: Alles auswählen
toolbarhandle = CreateToolBar(0,0)
Auf die MSDN-Seite der Windows-Controls gehen, ToolBar und ToolBar Overview auswählen, ein bisschen lesen und TB_AUTOSIZE entdecken.
3. Schritt
Code: Alles auswählen
lResult = SendMessage(
// returns LRESULT in lResult
(HWND) hWndControl,
// handle to destination control
(UINT) TB_AUTOSIZE,
// message ID
(WPARAM) wParam,
// = 0; not used, must be zero
(LPARAM) lParam
// = 0; not used, must be zero
);
Code: Alles auswählen
SendMessage_(toolbarhandle,#TB_AUTOSIZE,0,0)
4. Schritt:
Das ganze in die Window-Resize-Callback-Prozedur einfügen:
Code: Alles auswählen
Global toolbarhandle
Procedure WindowResize(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_SIZE
SendMessage_(toolbarhandle,#TB_AUTOSIZE,0,0)
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0,0,0,300,100,#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered,"ToolBar-Resize")
SetWindowCallback(@WindowResize())
If CreateMenu(0,WindowID())
MenuTitle("Bip")
MenuItem(0,"Bop")
EndIf
toolbarhandle = CreateToolBar(0,WindowID())
If toolbarhandle
ToolBarStandardButton(1,#PB_ToolBarIcon_New)
ToolBarStandardButton(2,#PB_ToolBarIcon_Open)
ToolBarStandardButton(3,#PB_ToolBarIcon_Save)
ToolBarSeparator()
ToolBarStandardButton(4,#PB_ToolBarIcon_Replace)
ToolBarStandardButton(5,#PB_ToolBarIcon_Delete)
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf