pywin32 Tkinterのウィンドウハンドルを取得し、上記にプロットされています

図面上のWin32 APIのTkinterの窓を達成したい、あなたは最初のハンドルHWNDのTkinterのウィンドウを取得し、その後、デバイスHDCのTkinterを取得する必要があります。これらが正しくTkinterのハンドルを得ることができないようのFindWindow()、にgetActiveWindow()、GetForegroundWindow()関数が見えるお試しください

その後stackoverflowの上列子を参照してください、pywintypes.HANDLE使用(int型(root.frame()、16))は成功しました。

オリジナルたとえばます。https://stackoverflow.com/questions/25602986/using-python-tkinter-how-to-smoothly-move-and-resize-the-non-focusable-window

ここで私は、元のケースのTkinterをウィンドウの非フォーカス可能ウィンドウを作成、ウィンドウはWS_POPUPにスタイルを変更するために設定されています

インポートTKのようなTkinterの
 インポートのWin32API
 インポートwin32con
 インポートpywintypesの

ルート = tk.Tk()

root.geometry(" + 0 + 0 " 
root.lift()

hWindow = pywintypes.HANDLE(INT(root.frame()、16 ))

win32api.SetWindowLong(hWindow、win32con.GWL_STYLE、win32con.WS_POPUP)

root.mainloop()

このウィンドウスタイル、同様のoverrideredirect(1)

私はTkinterのウィンドウにペイントの機能を実現したい、使用するコードを描き始めるだけでなく、ウィンドウの問題を再描画する場所を検討しているようです。実際には、私が唯一のコールバックイベントの定義にコードを描いていたとき、グラフィックスを描画されました。そして、ウィンドウの再描画を見つける方法はありません

win32gui インポート *
 インポートwin32conの
 インポートpywintypes 

から Tkinterのインポート * 

ルート = Tkの()

root.title(" tkinterApp " 

HWND = pywintypes.HANDLE(INT(root.frame()、16 ))

プリント(HWND)

HDC = GetDC( HWND)

デフコールバック():
    HBRUSH = GetStockObject(win32con.NULL_BRUSH)
    oldbrush = SelectObject(HDC、HBRUSH)
    長方形(HDC、 50,50,100,100 

ボタン(根、テキスト= " 表示ペイント"、コマンド= コールバック).pack() #
  ReleaseDCの(HWND、HDC)

root.geometry(" 400×400 " 

#1 (root.mainloop)を

 

おすすめ

転載: www.cnblogs.com/vocus/p/11496525.html