12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- # sliderdemo.py
- # Demo of the slider control courtesy of Mike Fletcher.
-
- import win32con
- import win32ui
- from pywin.mfc import dialog
-
-
- class MyDialog(dialog.Dialog):
- """
- Example using simple controls
- """
-
- _dialogstyle = (
- win32con.WS_MINIMIZEBOX
- | win32con.WS_DLGFRAME
- | win32con.DS_MODALFRAME
- | win32con.WS_POPUP
- | win32con.WS_VISIBLE
- | win32con.WS_CAPTION
- | win32con.WS_SYSMENU
- | win32con.DS_SETFONT
- )
- _buttonstyle = (
- win32con.BS_PUSHBUTTON
- | win32con.WS_TABSTOP
- | win32con.WS_CHILD
- | win32con.WS_VISIBLE
- )
- ### The static template, contains all "normal" dialog items
- DIALOGTEMPLATE = [
- # the dialog itself is the first element in the template
- ["Example slider", (0, 0, 50, 43), _dialogstyle, None, (8, "MS SansSerif")],
- # rest of elements are the controls within the dialog
- # standard "Close" button
- [128, "Close", win32con.IDCANCEL, (0, 30, 50, 13), _buttonstyle],
- ]
- ### ID of the control to be created during dialog initialisation
- IDC_SLIDER = 9500
-
- def __init__(self):
- dialog.Dialog.__init__(self, self.DIALOGTEMPLATE)
-
- def OnInitDialog(self):
- rc = dialog.Dialog.OnInitDialog(self)
- # now initialise your controls that you want to create
- # programmatically, including those which are OLE controls
- # those created directly by win32ui.Create*
- # and your "custom controls" which are subclasses/whatever
- win32ui.EnableControlContainer()
- self.slider = win32ui.CreateSliderCtrl()
- self.slider.CreateWindow(
- win32con.WS_TABSTOP | win32con.WS_VISIBLE,
- (0, 0, 100, 30),
- self._obj_,
- self.IDC_SLIDER,
- )
- self.HookMessage(self.OnSliderMove, win32con.WM_HSCROLL)
- return rc
-
- def OnSliderMove(self, params):
- print("Slider moved")
-
- def OnCancel(self):
- print("The slider control is at position", self.slider.GetPos())
- self._obj_.OnCancel()
-
-
- ###
- def demo():
- dia = MyDialog()
- dia.DoModal()
-
-
- if __name__ == "__main__":
- demo()
|