wxpython 윈도 우즈 에 트 레이 풍선 메시지 표시

2680 단어 wxPython
2009-10-18 javaeye  http://angeloce.iteye.com/admin/blogs/493681
 
=====================================
 
wx 아래 에 만들어 진 트 레이 아이콘 에 풍선 메 시 지 를 표시 하려 는 작은 수요 가 있 습 니 다. 어색 한 것 은 wx. TaskBarIcon 이 wx. Window 등 GetHandle 방법 이 있 지 않 아 핸들 을 직접 얻 을 수 없습니다. 해결 방법
1. 스스로 TaskBarIcon 을 다시 쓰기...
2. 직접 옮 겨 다 니 며 핸들 을 찾 습 니 다.
#coding: cp936





import win32gui

import win32con

import time



class TestTaskbarIcon:

    def __init__(self):

        

        #        

        wc = win32gui.WNDCLASS()

        hinst = wc.hInstance = win32gui.GetModuleHandle(None)

        wc.lpszClassName = "PythonTaskbarDemo"

        wc.lpfnWndProc = {win32con.WM_DESTROY: self.OnDestroy,}

        classAtom = win32gui.RegisterClass(wc)

        style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU

        self.hwnd = win32gui.CreateWindow( classAtom, "Taskbar Demo", style,

                0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,

                0, 0, hinst, None)

        hicon = win32gui.LoadIcon(0, win32con.IDI_APPLICATION)

        nid = (self.hwnd, 0, win32gui.NIF_ICON, win32con.WM_USER+20, hicon, "Demo")

        win32gui.Shell_NotifyIcon(win32gui.NIM_ADD, nid)



    def showMsg(self, title, msg):

        #      Shell_NotifyIconA        Shell_NotifyIcon  

        #      win32gui structure,          .

        #        .

        nid = (self.hwnd, #   

                0, #     ID

                win32gui.NIF_INFO, #   

                0, #     ID

                0, #       

                "TestMessage", #      

                msg, #        

                0, #        

                title, #     

                win32gui.NIIF_INFO #        

                )

        win32gui.Shell_NotifyIcon(win32gui.NIM_MODIFY, nid)



    def OnDestroy(self, hwnd, msg, wparam, lparam):

        nid = (self.hwnd, 0)

        win32gui.Shell_NotifyIcon(win32gui.NIM_DELETE, nid)

        win32gui.PostQuitMessage(0) # Terminate the app.

        



if __name__ == '__main__':

    t = TestTaskbarIcon()

    t.showMsg("   !", "   !")

    time.sleep(5)

    win32gui.DestroyWindow(t.hwnd)

 
    1. 알고리즘 디자인 을 제외 하고 python 을 사용 하 는 것 은 정말 간단 합 니 다.
    2. python 을 사용 할 줄 아 는 것 은 아무것도 아니 고 괴상 한 것 도 사용 해 야 한다. 예 를 들 어 이것 이다.
    3. windows 개발 을 자주 하지 않 는 사람 은 msdn 과 baidu / google 을 항상 준비 해 야 당황 하지 않 는 다.
 
    절차 가 바 뀌 었 으 니 가능 한 한 줄 이 세 요.
 
쓰다
http://www.3snews.net/html/50/550-20986.html

좋은 웹페이지 즐겨찾기