#如果对Window Program有兴趣,可以看一下《windows程序设计》
#编写者:SDY
import win32api,win32gui,win32con,os
#窗口类
class My_Window():
def __init__(self):
wndclass=win32gui.WNDCLASS()
wndclass.style=win32con.CS_HREDRAW|win32con.CS_VREDRAW
wndclass.cbWndExtra=0
# wndclass.hInstance=self.hInstance
wndclass.hIcon=win32gui.LoadIcon(0,win32con.IDI_WINLOGO)
wndclass.hCursor=win32gui.LoadCursor(0,win32con.IDC_ARROW)
wndclass.hbrBackground=win32gui.GetStockObject(win32con.WHITE_BRUSH)
# wndclass.lpszMenuName='Menu'
wndclass.lpszClassName='MyWindowClass'
wndclass.lpfnWndProc=self.WndProc
atom=win32gui.RegisterClass(wndclass)
self.class_atom=atom
#窗口过程函数
def WndProc(self,handle,msg,mwParam,mlParam):
if msg==win32con.WM_PAINT:
hdc,ps=win32gui.BeginPaint(handle)
rect=win32gui.GetClientRect(handle)
win32gui.DrawText(hdc,'Window',-1,rect,
win32con.DT_SINGLELINE|win32con.DT_CENTER|win32con.DT_VCENTER)
win32gui.EndPaint(handle,ps)
return 0
elif msg==win32con.WM_DESTROY:
win32gui.PostQuitMessage(0)
return 0
else:
return win32gui.DefWindowProc(handle, msg, mwParam, mlParam)
#主函数
WinClass=My_Window()
msg=1
handle=win32gui.CreateWindow(WinClass.class_atom,'Hello Window',win32con.WS_OVERLAPPEDWINDOW,win32con.CW_USEDEFAULT,win32con.CW_USEDEFAULT,win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,0,0,0,None)
win32gui.ShowWindow(handle,win32con.SW_SHOWNORMAL)
win32gui.UpdateWindow(handle)
while msg:
msg=win32gui.GetMessage(handle,0,0)
win32gui.TranslateMessage(msg[1])
win32gui.DispatchMessage(msg[1])
#os.system('pause')