PureBoard
https://www.purebasic.fr/german/

(WinAPI) PB-Gadgets ansteuern
https://www.purebasic.fr/german/viewtopic.php?f=9&t=15
Seite 1 von 1

Autor:  Danilo [ 29.08.2004 05:59 ]
Betreff des Beitrags:  (WinAPI) PB-Gadgets ansteuern

[ 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:
Code:
toolbarhandle = CreateToolBar(0,0)


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
Code:
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
);

ansehen und daraus
Code:
SendMessage_(toolbarhandle,#TB_AUTOSIZE,0,0)

machen.

4. Schritt:
Das ganze in die Window-Resize-Callback-Prozedur einfügen:
Code:
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


Nun ändert sich die ToolBar-Begrenzungslinie zum Menü ^_^

Autor:  pickelrobert [ 05.03.2005 17:09 ]
Betreff des Beitrags: 

Dazu fällt mir noch eine Frage ein. Wie ermittle ich das Handle des einzelnen Buttons der Toolbar ? Ich möchte ein Button "gedrückt" und normal - also "nicht gedrückt" darstellen. Hast Du da eine Idee ?

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/