¹C«È:  µù¥U | µn¿ý | ·j¯Á | À°§U | VIPÃÙ§U¥»¯¸ | ¥ZµnÃÙ§U¼s§i | ³]¬°­º­¶ | ¥[¤J¦¬Âà | ÁcÅ餤¤å

 

your gf Ú»­ø¨ì¤ù ¥î¼äóa ¤£¯à³X°ÝSOPCAST­¶­± ¶Â¦â­I´º ¤ÑÀs¤K³¡·tª÷Ä_ ¸Ý¥Ponline©xºô ¤p¤t¬ü ½u¤WH°Êµe §K¶O§Y®É³ø»ù ªá¼Ë¤Ö¦~¤Ö¤k¢ê¢ü ¤Ó»×¥ß§Ó¶Ç ¤H¶¡¤¿¾¹º©µe Hebe·s¾v«¬ Media calssic I miss you³¯¬f¦t seed H LostPlanet¯}¸Ñ ¤Ñ°ó¨pªA³Ü¤ôµ{¦¡ ¤Ñ¥~2 online ¯]®ü®á®³¤p©j¥þ®M

 




·j¯Á¿ï¶µ ¯Á¤Þ¨t²Î¤u¨ãµ¡
 
¼ÐÃD: Win32·J½s±Ðµ{¤­
http://manyway.net ÃÙ§Uºô¯¸¸ü¤J¤¤...
chan0006
ºaÅA²z¨Æ
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7
¹q¸£¦a±a°Ï¥D

ºaÅA¾±³¹ ¥Ø«e¨S¦³¾±³¹

UID¡G 460360

©Ê§O¡G ¨k

ºëµØ¡G 3 ½g

¿n¤À¡G 2593 ÂI

©«¤l¡G 1863 ½g

  ¤j ¤¤ ¤p
µoªí©ó 2006-11-25 09:34  ¸ê®Æ  ­Ó¤HªÅ¶¡  ¥D­¶ µu®ø®§  ¥[¬°¦n¤Í  ²K¥[ chan0006 ¬°MSN¦n¤Í ³q¹LMSN©M chan0006 ¥æ½Í QQ

Win32·J½s±Ðµ{¤­ ±z¬O²Ä 282­ÓÂsÄýªÌ

¦³Ãö¥\¯àªí©M¥[³tÁä
    ¥\¯àªí¬OWindows¼Ð·Ç¤¶­±ªº³Ì­«­nªº²Õ¦¨³¡¤À¡Aµøµ¡ªº¥\¯àªí±ø¦ì©ó¼ÐÃDÄæªº¤U¤è¡A³o­Ó¥\\¯àªí³q±`³QºÙ¬°¥D¥\¯àªí¡A¦C¦b¥D¥\\¯àªí¤U­±ªº¥\¯àªí¶µ³QºÙ¬°¤U©Ô¦¡µæ³æ¡A©Î¼u¥X¦¡µæ³æ¡B¤l¥\\¯àªíµ¥¡A¦Ó¦b¼ÐÃDÄæ¥ªÃ䪺¹Ï¥Ü¤WÂIÀ»¤]·|¼u¥X¤@­Ó¥\¯àªí¡A¥s°µ¨t²Î¥\\¯àªí¡C¥[³tÁä¹ê»Ú¤W¬O¥\¯àªí¶µªº§Ö±¶Áä¡AÀ³¥Îµ{¦¡±`¦b¥\\¯àªí¶µªº¥kÃä¼Ð¥X±Ò°Ê³o­Ó¥\¯àªí¶µªº§Ö±¶Áä¡A³o´N¬O¥[³tÁä¡C¥\\¯àªíªºµ²ºc¬O¥i´O®Mªº¡A¤]´N¬O»¡¡A§A¥i¥H¦b¿ï¾Ü¤@­Ó¥\¯àªí¶µ®É¼u¥X¥t¤@­Ó¥\\¯àªí¡Cµæ³æ¶µªººØÃþ¦³¥¿±`ªº¡B³Q¸T¥Îªº¡B¦Ç¤Æªº¡B¤ô·Ç¤À¹j½uµ¥¡C¥»¸`ªº¥Ü½dµ{¦¡ºt¥Ü¤F¦UºØÃþ«¬ªº¥\¯àªí¡G§A¥i¥H¦b¥D¥\\¯àªí¤¤¬Ý¨ì¥¿±`ªº©M¸T¥Îªº¡B¦Ç¤Æªº¥\¯àªí¡A¥i¥H¥Î¥kÁ䳿À»µøµ¡ªº¥ô¤@³¡¤À¼u¥X¤@­Ó¡§¼u¥X¦¡¥\\¯àªí¡¨¡A¤]¥i¥H¬Ý¨ì§Ú¦b¨t²Î¥\¯àªí¤¤²K¥[¤F´X¶µ·sªº¤º®e¡C
    ¦b½sµ{ªº³B²z¤¤¡A¥\¯àªí¬O¦b¸ê·½Àɮפ¤©w¸qªº¡]·íµM¡A§A¥i¥H¤£¥Î¸ê·½ÀɮסA¦Ó¦bµ{¦¡¤¤¥ÎAppendMenu¤@¶µ¤@¶µªº²K¥[¡A¦ý¨Ï¥Î¸ê·½ÀÉ®×µLºÃ¬O³Ì²³æªº¿ìªk¡^¡AµM«á¦bµ{¦¡¤¤¥ÎLoadMenu¨ÓÀò±o¥\¯àªí±±¨î½X¦A¨Ï¥Î¡C¦b¸ê·½Àɮפ¤©w¸q¥\\¯àªíªº»yªk¦p¤U¡G
µæ³æID menu discardable
BEGIN
popup "¥Dµæ³æ¶µ¤@"
BEGIN
  menuitem "¼u¥X¦¡µæ³æ¶µ¤@", ©R¥OID [,OPTION]
  menuitem "¼u¥X¦¡µæ³æ¶µ¤G", ©R¥OID [,OPTION]
  menuitem separator
  menuitem "¼u¥X¦¡µæ³æ¶µ¤T", ©R¥OID [,OPTION]
  ...
END
popup "¥Dµæ³æ¶µ¤G"
BEGIN
  menuitem "¼u¥X¦¡µæ³æ¶µ¤@", ©R¥OID [,OPTION]
  menuitem "¼u¥X¦¡µæ³æ¶µ¤G", ©R¥OID [,OPTION]
  menuitem "¼u¥X¦¡µæ³æ¶µ¤T", ©R¥OID [,OPTION]
  ...
  popup  "´O®Mªºµæ³æ¶µ"
  BEGIN
  menuitem "¼u¥X¦¡µæ³æ¶µ¤@", ©R¥OID [,OPTION]
  menuitem "¼u¥X¦¡µæ³æ¶µ¤G", ©R¥OID [,OPTION]
  menuitem "¼u¥X¦¡µæ³æ¶µ¤T", ©R¥OID [,OPTION]
  ...
  END
END
...
END
¥\¯àªíID´N¬O§Ú­Ì¦bµ{¦¡¤¤¥ÎLoadMenu¸Ë¤J¥\¯àªí¥Î¨ìªº¸ê·½½s¸¹¡Amenuitem separator ©w¸q¤F¤À¹j¥\¯àªí¶µ¥Îªº¤ô¥­½u¡A¥\\¯àªí¶µ©w¸q¤¤ªºoption¬OÄݩʡA¦pGRAYED¬O¦Ç¤Æªº¡AINACTIVE¬O³Q¸T¥Îªºµ¥µ¥¡C¦Ó¥[³tÁä¹ê»Ú¤W´N¬O©w¸q¤F¹ïÀ³¤_¦U­Ó¥\¯àªí¶µªº¼öÁä¡A©w¸q¤èªk¦p¤U¡G

¥[³tÁäID accelerators
BEGIN
  VK_F1, ¹ïÀ³ªº¥\¯àªí©R¥OID, VIRTKEY
  VK_F2, ¹ïÀ³ªº¥\¯àªí©R¥OID, VIRTKEY
  ...
  "A", ¹ïÀ³ªº¥\¯àªí©R¥OID, VIRTKEY,CONTROL
  "B", ¹ïÀ³ªº¥\¯àªí©R¥OID, VIRTKEY,CONTROL
END
¨ä¤¤¡A¥[³tÁäID¬O§Ú­Ì¦bµ{¦¡¤¤¥ÎLoadAccelerator¸Ë¤J¥[³tÁ䪺¸ê·½½s¸¹¡A¤U­±ªº¨C¤@¶µ©w¸q¤F¤@­ÓÁä¡AVK_F1ªí¥Ü¥ÎF1¡A¡§A¡¨ªí¥ÜÁäA¡A¤U­±ªºVIRTKEY¬O¥²»Ýªº¡A¦A¤U­±ªºCONTROL¡§©ÎSHIFT¡BALT¡¨ªí¥Ü¥ÎCONTROLÁä²Õ¦X¡A¤]´N¬O»¡¡A¦pªG§A©w¸q¤F¡G"C",IDM_COPY,VIRTKEY,CONTROL ¦Ó¥B¦b¥\¯àªí©w¸q¤¤©w¸q¤F menuitem "«þ¨©",IDM_COPY¡A¨º»ò¡A§A¦bµ{¦¡¤¤«ö¤UCtrl-C¹ê»Ú¤W´N¬O°õ¦æ¤F¥\¯àªí¶µ¡§«þ¨©¡¨¡C
    ¥\¯àªí©M¥[³tÁ䪺½sµ{¬O«Ü²³æªº¡Aªì©l¤Æªº³¡¤À§A»Ý­n°µ¥H¤U¨Æ±¡¡G

¨ú±oµ{¦¡ªº¹ê¨Ò±±¨î½X(hInstance)
¥ÎLoadMenu¸Ë¤J¥\¯àªí¡A±o¨ì¥\\¯àªí±±¨î½X
¥ÎLoadAccelerator¸Ë¤J¥[³tÁä¡A±o¨ì¥[³tÁä±±¨î½X
µù¥Uµøµ¡Ãþ
³Ð«Øµøµ¡®É¦b°Ñ¼Æ¤¤¨î©w¥\¯àªí±±¨î½X
Åã¥Üµøµ¡
µM«á¶i¤J®ø®§°j°é¡A¦b®ø®§°j°é¤¤¥ÎTranslateAccelerator¨Ó¶i¦æ¥[³tÁ䪺ÀË´ú¡]¸Ô¨£®Ú·½µ{¦¡¡^
·íµøµ¡Åã¥Ü«á¡A·í¤@­Ó¥\¯àªí¶µ©Î¤@­Ó¥[³tÁä³Q«ö¤U®É¡AWindows¦Vµøµ¡¹Lµ{µo°eWM_COMMAND®ø®§¡A¦Ó·í¤@­Ó¨t²Î¥\¯àªí¤¤ªº¥\\¯àªí¶µ³Q«ö¤U®É¡AWindows ¦Vµøµ¡¹Lµ{µo°eWM_SYSCOMMAND¡A¥\¯àªí¶µ©R¥OªºID´N¥]¬A¦bwParamªº§C16¦ì¤¤¡A¦b¤@¯ëªº½sµ{¤¤¡A¦pªG§Ú­Ì¤£¹ï¨t²Î¥\¯àªí®ø®§¶i¦æ³B²z¡A¨º»ò¥u»Ý¦bWM_COMMAND®ø®§ªº³B²z¤¤«Ø¥ß¤@¬q .if/.elseif/.elseif .../.endifªº»y¥y¹ï¦U­Ó¥\¯àªí©R¥OID¶i¦æ³B²z´N¦æ¤F¡C

¨Ï¥Î¥\¯àªí©M¥[³tÁ䪺®Ú·½µ{¦¡
  .386
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Programmed by ù¶³±l, bigluo@telekbird.com.cn
; Website: http://asm.yeah.net
; LuoYunBin's Win32 ASM page (ù¶³±lªº½sµ{¼Ö¶é)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  .model flat, stdcall
  option casemap :none   ; case sensitive

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include ¼Æ¾Ú
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

include  windows.inc
include  user32.inc
include  kernel32.inc
include  comctl32.inc
include  comdlg32.inc
include  shell32.inc
include  gdi32.inc

includelib user32.lib
includelib kernel32.lib
includelib comctl32.lib
includelib comdlg32.lib
includelib shell32.lib
includelib gdi32.lib

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ ¼Æ¾Ú
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

IDI_MAIN equ  1000  ;icon
IDA_MAIN equ  2000  ;Accelerator

IDM_MAIN equ  4000
IDM_OPEN equ  4101
IDM_OPTION equ  4102
IDM_EXIT equ  4103
IDM_SETFONT equ  4201
IDM_SETCOLOR equ  4202
IDM_FIND equ  4203
IDM_FINDPREV equ  4204
IDM_FINDNEXT equ  4205
IDM_TOOLBAR equ  4206
IDM_TOOLBARTEXT equ  4207
IDM_INPUTBAR equ  4208
IDM_STATUSBAR equ  4209
IDM_HELP equ  4301
IDM_ABOUT equ  4302

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; ¸ê®Æ¬q
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  .data?
hIcon  dd  ?
hInstance dd  ?
hWinMain dd  ?
hMenu  dd  ?
hSubMenu dd  ?
szBuffer db 256 dup (?)
dwFlag  dd  ?
;********************************************************************
; ¼Ð»x¦ì¤¸©w¸q
F_TOOLBAR equ 00000001b
F_TOOLBARTEXT equ 00000010b
F_INPUTBAR equ 00000100b
F_STATUSBAR equ 00001000b

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; ¸ê®Æ¬q
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  .data
szClassName db "Menu Example",0
szCaptionMain db 'µæ³æÀ³¥Î¥Ü¨Ò',0
szMenuHelp db "À°§U¥DÃD(&H)",0
szMenuAbout db "Ãö©ó¥»µ{¦¡(&A)...",0

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; ¥N½X¬q
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  .code
include  Debug.asm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; µ{¦¡¶}©l
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
  call _WinMain
  invoke ExitProcess,NULL

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; ¥Dµøµ¡µ{¦¡
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_WinMain proc
  local @stWcMain:WNDCLASSEX
  local @stMsg:MSG
  local @hAccelerator

  invoke InitCommonControls
  invoke GetModuleHandle,NULL
  mov hInstance,eax
  invoke LoadIcon,hInstance,IDI_MAIN
  mov hIcon,eax
  invoke LoadMenu,hInstance,IDM_MAIN
  mov hMenu,eax
;*************** µù¥Uµøµ¡Ãþ *****************************************
  invoke LoadCursor,0,IDC_ARROW
  mov @stWcMain.hCursor,eax
  mov @stWcMain.cbSize,sizeof WNDCLASSEX
  mov @stWcMain.hIconSm,0
  mov @stWcMain.style,CS_HREDRAW or CS_VREDRAW
  mov @stWcMain.lpfnWndProc,offset WndMainProc
  mov @stWcMain.cbClsExtra,0
  mov @stWcMain.cbWndExtra,0
  mov eax,hInstance
  mov @stWcMain.hInstance,eax
  mov @stWcMain.hIcon,0
  mov @stWcMain.hbrBackground,COLOR_WINDOW + 1
  mov @stWcMain.lpszClassName,offset szClassName
  mov @stWcMain.lpszMenuName,0
  invoke RegisterClassEx,addr @stWcMain
;*************** «Ø¥ß¿é¥Xµøµ¡ ***************************************
  invoke CreateWindowEx,WS_EX_CLIENTEDGE,\
   offset szClassName,offset szCaptionMain,\
   WS_OVERLAPPEDWINDOW OR WS_VSCROLL OR WS_HSCROLL,\
   100,100,550,300,\
   NULL,hMenu,hInstance,NULL

  invoke ShowWindow,hWinMain,SW_SHOWNORMAL
  invoke UpdateWindow,hWinMain
;*************** ®ø®§°j°é *******************************************
  invoke LoadAccelerators,hInstance,IDA_MAIN
  mov @hAccelerator,eax
  .while TRUE
   invoke GetMessage,addr @stMsg,NULL,0,0
   .break .if eax == 0
   invoke TranslateAccelerator,hWinMain,@hAccelerator,addr @stMsg
   .if eax == 0
    invoke TranslateMessage,addr @stMsg
    invoke DispatchMessage,addr @stMsg
   .endif
  .endw
  ret

_WinMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WndMainProc proc uses ebx edi esi, \
  hWndWORD,uMsgWORD,wParamWORD,lParam:DWORD
  local @stPosOINT

  mov eax,uMsg
  .if eax == WM_CREATE
   mov eax,hWnd
   mov hWinMain,eax
   call _Init
;********************************************************************
  .elseif eax == WM_COMMAND
     .if lParam == 0
   mov eax,wParam
   movzx eax,ax
   .if eax == IDM_EXIT
    call _Quit
   .elseif eax == IDM_TOOLBAR
    xor dwFlag,F_TOOLBAR
    call _MenuStatus
   .elseif eax == IDM_TOOLBARTEXT
    xor dwFlag,F_TOOLBARTEXT
    call _MenuStatus
   .elseif eax == IDM_INPUTBAR
    xor dwFlag,F_INPUTBAR
    call _MenuStatus
   .elseif eax == IDM_STATUSBAR
    xor dwFlag,F_STATUSBAR
    call _MenuStatus
   .else
    _Debug "¥\¯àªí©R¥O\","©R¥OID",eax
   .endif
     .endif
;********************************************************************
  .elseif eax == WM_SYSCOMMAND
   mov eax,wParam
   movzx eax,ax
   .if eax == IDM_HELP || eax == IDM_ABOUT
    _Debug "¥\¯àªí©R¥O\","©R¥OID",eax
   .else
    invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    ret
   .endif
;********************************************************************
; «ö¤U¥kÁä®É¼u¥X¤@­ÓPOPUP¥\¯àªí
;********************************************************************
  .elseif eax == WM_RBUTTONDOWN
   invoke GetCursorPos,addr @stPos
   invoke TrackPopupMenu,hSubMenu,TPM_LEFTALIGN,@stPos.x,@stPos.y,NULL,hWnd,NULL
;********************************************************************
  .elseif eax == WM_CLOSE
   call _Quit
;********************************************************************
  .else
   invoke DefWindowProc,hWnd,uMsg,wParam,lParam
   ret
  .endif
;********************************************************************
; ª`·N¡GWndProc ³B²z Windows ®ø®§«á¡A¥²¶·¦b Eax ¤¤ªð¦^ 0
; ¦ý¬O¥Ñ DefWindowProc ³B²z«áªºªð¦^­È¤£¯à§ïÅÜ¡A§_«hµøµ¡
; ±NµLªkÅã¥Ü!
;********************************************************************
  xor eax,eax
  ret

WndMainProc endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; ¥Dµøµ¡±±¨î°Æµ{¦¡
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_Init  proc
  local @hSysMenu

  invoke SendMessage,hWinMain,WM_SETICON,ICON_SMALL,hIcon
;********************************************************************
; POPUP¥\¯àªí­n¥Î¨ì¤l¥\\¯àªí¤~¯à¹ê²{
;********************************************************************
  invoke GetSubMenu,hMenu,1
  mov hSubMenu,eax
  call _MenuStatus
;********************************************************************
; ¦b¨t²Î¥\¯àªí¤¤²K¥[¥\\¯àªí¶µ
;********************************************************************
  invoke GetSystemMenu,hWinMain,FALSE
  mov @hSysMenu,eax
  invoke AppendMenu,@hSysMenu,MF_SEPARATOR,0,NULL
  invoke AppendMenu,@hSysMenu,MF_STRING,IDM_HELP,offset szMenuHelp
  invoke AppendMenu,@hSysMenu,MF_STRING,IDM_ABOUT,offset szMenuAbout

  ret
_Init  endp
;********************************************************************
; ®Ú¾Ú¼Ð»x¦ì¤¸³]¸m¬ÛÀ³¥\¯àªí¶µªºª¬ºA
;********************************************************************
_MenuStatus proc

  test dwFlag,F_INPUTBAR
  .if ZERO?
   invoke CheckMenuItem,hMenu,IDM_INPUTBAR,MF_UNCHECKED
  .else
   invoke CheckMenuItem,hMenu,IDM_INPUTBAR,MF_CHECKED
  .endif
  test dwFlag,F_TOOLBAR
  .if ZERO?
   invoke CheckMenuItem,hMenu,IDM_TOOLBAR,MF_UNCHECKED
  .else
   invoke CheckMenuItem,hMenu,IDM_TOOLBAR,MF_CHECKED
  .endif
  test dwFlag,F_TOOLBARTEXT
  .if ZERO?
   invoke CheckMenuItem,hMenu,IDM_TOOLBARTEXT,MF_UNCHECKED
  .else
   invoke CheckMenuItem,hMenu,IDM_TOOLBARTEXT,MF_CHECKED
  .endif
  test dwFlag,F_STATUSBAR
  .if ZERO?
   invoke CheckMenuItem,hMenu,IDM_STATUSBAR,MF_UNCHECKED
  .else
   invoke CheckMenuItem,hMenu,IDM_STATUSBAR,MF_CHECKED
  .endif
  ret

_MenuStatus endp
;********************************************************************
_Quit  proc

  invoke DestroyWindow,hWinMain
  invoke PostQuitMessage,NULL
  ret

_Quit  endp
;********************************************************************
  end start


µ{¦¡ªº¤ÀªR

    Åý§Ú­Ì¨Ó²³æ¤ÀªR¤@¤U³o­Óµ{¦¡¡A­º¥ý³o­Óµ{¦¡©M¤W¤@¸`ªº³Ì²³æªºµøµ¡µ{¦¡ªº¤£¦P¤§³B´N¬O®ø®§°j°é¡A¦p¤U¡G
  .while TRUE
   invoke GetMessage,addr @stMsg,NULL,0,0
   .break .if eax == 0
   invoke TranslateAccelerator,hWinMain,@hAccelerator,addr @stMsg
   .if eax == 0
    invoke TranslateMessage,addr @stMsg
    invoke DispatchMessage,addr @stMsg
   .endif
  .endw
¦b°j°é¤¤ªºTranslateAccelerator¥Î¨Ó½T©w¦s©ñ¦bMSGµ²ºc¤¤ªº®ø®§¬O¤£¬OÁä½L®ø®§¡A¦pªG¬O¡A¥¦¬d§ä±±¨î½X@hAccelerator¹ïÀ³ªº¥[³tÁäªí¡A¦pªG§ä¨ì¤F¤@­Ó¤Ç°t¶µ¡A¨º»ò¥¦±N¥Î©R¥OID¦Vµøµ¡µo°eWM_COMMAND®ø®§¡A¦P®Éªð¦^«D0­È¡A³o®É­Ôªí¥Ü®ø®§¤w¸g³Q³B²z¡A¤£¥Î¦A½Õ¥Î¤U­±ªºTranslateMessage ©M DispatchMessage ¤F¡A¦pªG¤£¬O¡A¨º»ò¥¦±Nªð¦^0¡A®ø®§°j°éÄ~Äò¡C
    ¥t¥~¡A­n»¡©úªº¬O¼u¥X¦¡¥\¯àªí¡A¦bµ{¦¡¤¤§Ú­Ì¦^À³WM_RBUTTONDOWN®ø®§¹ï«ö¤U¥kÁä¶i¦æ³B²z¡A µM«á½Õ¥ÎGetCursorPos¨ú±o·í«e·Æ¹«®y¼Ð¡AµM«á¨Ï¥ÎTrackPopupMenu¦b·Æ¹«¦ì¸m¤W¼u¥X¤@­Ó¥\¯àªí¡A¦ý¬O¦b¸ê·½Àɮפ¤¡A¡§¼u¥X¦¡¥\\¯àªí¡¨¬OµLªkª½±µ©w¸qªº¡A©Ò¥H¦bªì©l¤Æ³¡¤À¡A§Ú­Ì¨Ï¥ÎGetSubMenu ¨ú¥X¼u¥X¦¡¤l¥\¯àªíªº±±¨î½X¨ÑTrackPopupMenu¨Ï¥Î¡C





〓¤¤°ê¶Â«ÈÁp·ù¡]CHU¡^〓«e®Ö¤ß¦¨­û¡A²{¬°ºaÅA·|­û
〓¤¤°ê¶Â«ÈÁp·ù¡]CHU¡^〓ºôµ¸¹q¤lÂø»x¡m¯x°}¡n½s¿è
­·°ó§Þ³N¤u§@«Ç
³»³¡

 



¥»¯¸³]³Æ¾¹§÷¥Ñ Many Way (HK) Limited ÃÙ§U´£¨Ñ
·í«e®É°Ï GMT+8, ²{¦b®É¶¡¬O 2008-9-7 11:37

Advertisting Agency

Audit and Analytics

Partner Companies

Powered by Discuz! 5.5.0¢x0.083282 (s), 7 queries, Copyright © 2008 HK-PUB.COM All Rights Reserved. ¥»¯¸Án©ú - ¼s§i¬d¸ß - ²M°£ Cookies - Ápô§Ú­Ì - ¤j²³½×¾Â - Archiver - WAP