iczelion tut23[3]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 jimgreen 的 blog

    invoke createwindowex,ws_ex_clientedge,addr classname,addr appname,\
ws_overlapped+ws_caption+ws_sysmenu+ws_minimizebox+ws_maximizebox+ws_visible,cw_usedefault,\
           cw_usedefault,350,200,null,null,\
           hinst,null
    mov   hwnd,eax
    .while true
        invoke getmessage, addr msg,null,0,0
        .break .if (!eax)
        invoke translatemessage, addr msg
        invoke dispatchmessage, addr msg
    .endw
    mov eax,msg.wparam
    ret
winmain endp

wndproc proc hwnd:hwnd, umsg:uint, wparam:wparam, lparam:lparam
    local pt:point
    .if umsg==wm_create
        invoke createpopupmenu
        mov hpopupmenu,eax
        invoke appendmenu,hpopupmenu,mf_string,idm_restore,addr restorestring
        invoke appendmenu,hpopupmenu,mf_string,idm_exit,addr exitstring
    .elseif umsg==wm_destroy
        invoke destroymenu,hpopupmenu
        invoke postquitmessage,null
    .elseif umsg==wm_size
        .if wparam==size_minimized
            mov note.cbsize,sizeof notifyicondata
            push hwnd
            pop note.hwnd
            mov note.uid,idi_tray
            mov note.uflags,nif_icon+nif_message+nif_tip
            mov note.ucallbackmessage,wm_shellnotify
            invoke loadicon,null,idi_winlogo
            mov note.hicon,eax
            invoke lstrcpy,addr note.sztip,addr appname
            invoke showwindow,hwnd,sw_hide
            invoke shell_notifyicon,nim_add,addr note
        .endif
    .elseif umsg==wm_command
        .if lparam==0
            invoke shell_notifyicon,nim_delete,addr note
            mov eax,wparam
            .if ax==idm_restore
                invoke showwindow,hwnd,sw_restore
            .else
                invoke destroywindow,hwnd
            .endif
        .endif
    .elseif umsg==wm_shellnotify
        .if wparam==idi_tray
            .if lparam==wm_rbuttondown
                invoke getcursorpos,addr pt
                invoke setforegroundwindow,hwnd
                invoke trackpopupmenu,hpopupmenu,tpm_rightalign,pt.x,pt.y,null,hwnd,null
                invoke postmessage,hwnd,wm_null,0,0

本文关键:iczelion asm
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top