Spaces:
Sleeping
Sleeping
# 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() | |