Update of /cvsroot/pywin32/pywin32/win32/Demos
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5532/win32/Demos
Modified Files:
win32gui_demo.py
Log Message:
Add demo of some of the drawing functions
Index: win32gui_demo.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/win32/Demos/win32gui_demo.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** win32gui_demo.py 7 Apr 2003 13:01:45 -0000 1.3
--- win32gui_demo.py 2 Jan 2007 08:06:26 -0000 1.4
***************
*** 2,6 ****
# Feel free to contribute more demos back ;-)
! import win32gui
def _MyCallback( hwnd, extra ):
--- 2,7 ----
# Feel free to contribute more demos back ;-)
! import win32gui, win32con, win32api
! import time, math
def _MyCallback( hwnd, extra ):
***************
*** 17,21 ****
--- 18,71 ----
print "Hrmmmm - I'm very surprised to not find a 'tooltips_class32' class."
+
+ def OnPaint(hwnd, msg, wp, lp):
+ dc, ps=win32gui.BeginPaint(hwnd)
+ win32gui.SetGraphicsMode(dc, win32con.GM_ADVANCED)
+ br=win32gui.CreateSolidBrush(win32api.RGB(255,0,0))
+ win32gui.SelectObject(dc, br)
+ angle=win32gui.GetWindowLong(hwnd, win32con.GWL_USERDATA)
+ win32gui.SetWindowLong(hwnd, win32con.GWL_USERDATA, angle+2)
+ r_angle=angle*(math.pi/180)
+ win32gui.SetWorldTransform(dc,
+ {'M11':math.cos(r_angle), 'M12':math.sin(r_angle), 'M21':math.sin(r_angle)*-1, 'M22':math.cos(r_angle),'Dx':250,'Dy':250})
+ win32gui.MoveToEx(dc,250,250)
+ win32gui.BeginPath(dc)
+ win32gui.Pie(dc, 10, 70, 200, 200, 350, 350, 75, 10)
+ win32gui.Chord(dc, 200, 200, 850, 0, 350, 350, 75, 10)
+ win32gui.LineTo(dc, 300,300)
+ win32gui.LineTo(dc, 100, 20)
+ win32gui.LineTo(dc, 20, 100)
+ win32gui.LineTo(dc, 400, 0)
+ win32gui.LineTo(dc, 0, 400)
+ win32gui.EndPath(dc)
+ win32gui.StrokeAndFillPath(dc)
+ win32gui.EndPaint(hwnd, ps)
+ return 0
+
+ def wndproc(hwnd, msg, wp, lp):
+ if msg==win32con.WM_PAINT:
+ return OnPaint(hwnd, msg, wp, lp)
+ return win32gui.DefWindowProc(hwnd, msg, wp, lp)
+
+ def TestSetWorldTransform():
+ wc = win32gui.WNDCLASS()
+ wc.lpszClassName = 'test_win32gui'
+ wc.style = win32con.CS_GLOBALCLASS|win32con.CS_VREDRAW | win32con.CS_HREDRAW
+ wc.hbrBackground = win32con.COLOR_WINDOW+1
+ wc.lpfnWndProc=wndproc
+ class_atom=win32gui.RegisterClass(wc)
+ hwnd = win32gui.CreateWindow(class_atom,'Spin the Lobster!',
+ win32con.WS_CAPTION|win32con.WS_VISIBLE,
+ 100,100,900,900, 0, 0, 0, None)
+ for x in xrange(500):
+ win32gui.InvalidateRect(hwnd,None,True)
+ win32gui.PumpWaitingMessages()
+ time.sleep(0.01)
+ win32gui.DestroyWindow(hwnd)
+ win32gui.UnregisterClass(class_atom,None)
+
print "Enumerating all windows..."
TestEnumWindows()
+ print "Testing drawing functions ..."
+ TestSetWorldTransform()
print "All tests done!"
|