12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #
- # Progress bar control example
- #
- # PyCProgressCtrl encapsulates the MFC CProgressCtrl class. To use it,
- # you:
- #
- # - Create the control with win32ui.CreateProgressCtrl()
- # - Create the control window with PyCProgressCtrl.CreateWindow()
- # - Initialize the range if you want it to be other than (0, 100) using
- # PyCProgressCtrl.SetRange()
- # - Either:
- # - Set the step size with PyCProgressCtrl.SetStep(), and
- # - Increment using PyCProgressCtrl.StepIt()
- # or:
- # - Set the amount completed using PyCProgressCtrl.SetPos()
- #
- # Example and progress bar code courtesy of KDL Technologies, Ltd., Hong Kong SAR, China.
- #
- from pywin.mfc import dialog
- import win32ui
- import win32con
- def MakeDlgTemplate():
- style = (win32con.DS_MODALFRAME |
- win32con.WS_POPUP |
- win32con.WS_VISIBLE |
- win32con.WS_CAPTION |
- win32con.WS_SYSMENU |
- win32con.DS_SETFONT)
- cs = (win32con.WS_CHILD |
- win32con.WS_VISIBLE)
- w = 215
- h = 36
- dlg = [["Progress bar control example",
- (0, 0, w, h),
- style,
- None,
- (8, "MS Sans Serif")],
- ]
- s = win32con.WS_TABSTOP | cs
- dlg.append([128,
- "Tick",
- win32con.IDOK,
- (10, h - 18, 50, 14), s | win32con.BS_DEFPUSHBUTTON])
- dlg.append([128,
- "Cancel",
- win32con.IDCANCEL,
- (w - 60, h - 18, 50, 14), s | win32con.BS_PUSHBUTTON])
- return dlg
- class TestDialog(dialog.Dialog):
- def OnInitDialog(self):
- rc = dialog.Dialog.OnInitDialog(self)
- self.pbar = win32ui.CreateProgressCtrl()
- self.pbar.CreateWindow (win32con.WS_CHILD |
- win32con.WS_VISIBLE,
- (10, 10, 310, 24),
- self, 1001)
- # self.pbar.SetStep (5)
- self.progress = 0
- self.pincr = 5
- return rc
- def OnOK(self):
- # NB: StepIt wraps at the end if you increment past the upper limit!
- # self.pbar.StepIt()
- self.progress = self.progress + self.pincr
- if self.progress > 100:
- self.progress = 100
- if self.progress <= 100:
- self.pbar.SetPos(self.progress)
- def demo(modal = 0):
- d = TestDialog (MakeDlgTemplate())
- if modal:
- d.DoModal()
- else:
- d.CreateWindow ()
- if __name__=='__main__':
- demo(1)
|