- 论坛徽章:
- 0
|
我用的python 2.5.4 + pywin32 2.12 @ winXP+SP2 +VC6.0
装了pywin32之后,想要写一个使用纯win32API的最简应用作为以后的模板。代码参考pywin32自带的demos里的
win32gui_demo、win32gui_dialog等几个py代码和《Programing windows 95》里第三章的那个
HELLOWIN.C(就是纯C纯API的最简win程序)
代码如下:
#-*- coding:UTF-8 -*-
# The Demostrator Application with pure Win32API
import win32gui, win32con, win32api
def OnClose(hwnd, msg, wparam, lparam):
win32gui.DestroyWindow(hwnd)
def OnDestroy(hwnd, msg, wparam, lparam):
win32gui.PostQuitMessage(0)
message_map = {
## win32con.WM_SIZE: OnSize,
## win32con.WM_COMMAND: OnCommand,
## win32con.WM_NOTIFY: OnNotify,
## win32con.WM_INITDIALOG: OnInitDialog,
## WM_SEARCH_RESULT:OnSearchResult,
## WM_SEARCH_FINISHED:OnSearchFinished,
win32con.WM_CLOSE: OnClose,
win32con.WM_DESTROY: OnDestroy
}
def winmain():
wc = win32gui.WNDCLASS()
# hinst = wc.hInstance = win32gui.GetModuleHandle(None)
wc.lpszClassName = "Win32 AppDemo"
wc.style = win32con.CS_GLOBALCLASS|win32con.CS_VREDRAW |
win32con.CS_HREDRAW
wc.hbrBackground = win32con.COLOR_WINDOW+1
wc.lpfnWndProc=message_map
classAtom=win32gui.RegisterClass(wc)
style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
hwnd = win32gui.CreateWindow(classAtom,
'The Demo Application with pure Win32API',style,
100,100,900,900,
0, 0, 0, None)
s=win32gui.GetWindowLong(hwnd,win32con.GWL_EXSTYLE)
win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE, s|
win32con.WS_EX_LAYERED)
win32gui.ShowWindow(hwnd,0)
win32gui.UpdateWindow(hwnd)
win32gui.PumpMessages()
win32gui.DestroyWindow(hwnd)
win32gui.UnregisterClass(classAtom, 0)
if __name__ == "__main__":
winmain()
现在问题是,在IDLE中run,整个IDLE呆滞,没有其它窗口弹出,如果点击IDLE的界面,跳出一个messagebox,标题
为“Microsoft Visual C++ Runtime Library”,内容为:
“Runtime Error!
Program:E:\Coding\Python25\pythonw.exe
This application has requested the runtime terminate it in an unusual
way,Please ontract the application's support team for more
information."
点击确定之后,IDLE就自动关闭了。在google和groups中到处搜索没有看到有关的解释,只好上来大喊求助。
PS: 我安装pywin32后得到的Pythonwin.exe似乎有很奇怪的毛病,新建或打开任何一个py代码,修改之后保存,代码就会消失,原文
件变成纯文本,其中为大量连续的 "==",字节数似乎是特定整数,只有一行,没有换行符。反复多次试验,这一现象不变,不知是何原因。我的
pythonwin的路径是...
\Python25\Lib\site-packages\pythonwin\pythonwin.exe
|
|