¹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:35  ¸ê®Æ  ­Ó¤HªÅ¶¡  ¥D­¶ µu®ø®§  ¥[¬°¦n¤Í  ²K¥[ chan0006 ¬°MSN¦n¤Í ³q¹LMSN©M chan0006 ¥æ½Í QQ

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

¦³Ãö¤u¨ãÄæ©Mª¬ºAÄæ
    ¤u¨ãÄæ©Mª¬ºAÄæ¤]¬OWindows¼Ð·Ç¤¶­±ªº²Õ¦¨³¡¤À¡A¤u¨ãÄæ¤@¯ë¦ì©ó¥\¯àªíÄæªº¤U¤è¡A¤W­±¬O¤@¨Ç¨t²Î©w¸qªº©Î¦Û¤v©w¸qªº¹Ï¤ù¡A¥i¥H³q«U¦aÅã¥Ü³o­Ó«ö¶sªº§@¥Î¡Cª¬ºAÄæ¤@¯ë¦ì©óµøµ¡ªº³Ì¤U¤è¡A¥Î¨ÓÅã¥Üµ{¦¡¹B¦æ¤¤ªº¤@¨Ç¸ê°T¡C¤u¨ãÄæ©Mª¬ºAÄæ¬OWindows¨t²Îªº¨â­Ó³q¥Îªº±±¨î¶µ¡A§A¥i¥H³q¹L¨â­Ó±M¥Îªº API ©ÎªÌ§Q¥Î CreateWindowEx ¦A¨Ï¥Î¨î©wªº¤w¸g¥Ñ¨t²Î©w¸qªºÃþ¨Ó³Ð«Ø¥¦­Ì¡C³o¨â­Ó API ¤À§O¬O CreateToolbarEx ©M CreateStatusWindow¡C¤U­±±N¤@¤U¥¦­Ìªº¥Îªk¡C
    CreateToolbarEx ªºÁn©ú¬°¡G
HWND CreateToolbarEx(
    HWND hwnd,
    DWORD ws,
    UINT wID,  
    int nBitmaps,  
    HINSTANCE hBMInst,  
    UINT wBMID,  
    LPCTBBUTTON lpButtons,  
    int iNumButtons,  
    int dxButton,  
    int dyButton,  
    int dxBitmap,  
    int dyBitmap,  
    UINT uStructSize}

¥¦ªº°Ñ¼Æ¤¤ hwnd ¬O¤÷µøµ¡¡]¤]´N¬O§Ú­Ìªº¥Dµøµ¡¡^ªº±±¨î½X¡Aws ¬O¤u¨ãÄæªº­·®æ¡A¥i¥H¥Ñ´X¶µ¦X¦¨¡A¦p WS_VISIBLE ¬O³Ð«Ø¬O¥i¨£¡ATBSTYLE_FLATªí¥Ü¥­­±«ö¶s¡AWS_BORDERªí¥Ü¦³Ãä½uµ¥¡A¨ãÅé¥i¥H¨£¤â¥U¡CwID ¬O¤u¨ãÄæªº¼ÐÃÑ¡AnBitmaps ¬O©w¸q«ö¶sªº¹Ï¤ù­Ó¼Æ¡A¦]¬°¦pªG§A­n¨Ï¥Î¦Û¤vªº¹Ï¤ù¡A©Ò¦³¹Ï¤ù¬O­n©ñ¦b¦P¤@¦æ¤¤ªº¡AµM«á´N¥Ñ§A¦Û¤v«ü©w¤¤¶¡ªº­Ó¼Æ¡A hBMInst ¬O¥]§t¤w©w¸q¨t²Î¹Ï¤ùªº¸ê·½±±¨î½X¡A¦b§A¤£·Q¦Û¤vµe¹Ï¡A¨Ï¥Î¤º©wªº¼Ð·Ç¹Ï¤ù®É¨Ï¥Î¡A¤@¯ë¥]§t³o¨Ç¹Ï¤ùªº hInstance ¤w¸g¦b Widnows.inc ¤¤©w¸q¬° HINST_COMMCTRL¡A¦P¼Ë wBMID ¤@¯ë¬O IDB_STD_SMALL_COLOR¡Aªí¥Ü¨Ï¥Î¤j¹Ï¤ùÁÙ¬O¤p¹Ï¤ùµ¥µ¥¡C±µ¤U¨Ó¬O©w¸q«ö¶sªº¸ê®Æµ²ºc¡A¤¤¶¡©w¸q¤F¦U­Ó«ö¶sªº©R¥O¸¹¡A¹Ï¤ù¸¹¤Î¨ä¥LÄݩʡAµ²ºc¦p¤U¡G
TBBUTTON STRUCT
  iBitmap   DWORD      ?
  idCommand DWORD      ?
  fsState   BYTE       ?
  fsStyle   BYTE       ?
  bReserved BYTE 2 dup(?)
  dwData    DWORD      ?
  iString   DWORD      ?
TBBUTTON ENDS
¨ä¤¤¡A¨C­Óµ²ºc©w¸q¤@­Ó«ö¶s¡A¸ê®Æµ²ºc¤¤iBitmap ¬O¹Ï¤ùID¡AidCommand ¬O«ö¶sªº©R¥O¸¹¡A³o­Ó©R¥O¸¹·í§A«ö¤U«ö¶sªº®É­Ô·|¥X²{¦b WM_COMMAND ®ø®§ªº wParam ¤¤¡A§A´N¥i¥Hª¾¹D­þ­Ó«ö¶s³Q«ö¤U¤F¡CfsState ¬O«ö¶sªºªì©lª¬ºA¡A¦p TBSTATE_PRESSED ¬O¤w¸g«ö¤Uªº¡A¸Ô²Ó¨£¤â¥U¡AfsStyle ¬O­·®æ¡C
    ¦Ó«Ø¥ßª¬ºAÄæªº CreateStatusWindow ªºÁn©ú¦p¤U¡G

HWND CreateStatusWindow(
    LONG style,  
    LPCTSTR lpszText,  
    HWND hwndParent,  
    UINT wID
   );
style ¬Oª¬ºAÄæªº­·®æ¡AlpszText «ü¦Vªì©l¤Æ¬O­nÅã¥Ü¦bª¬ºAÄæªº¤å¥»¡A§A¥i¥H«ü¦V NULL¡ChwndParent ¬O¤÷µ¡¤fªº±±¨î½X¡CwID ¬Oµ¡¤f ID¡C

¨Ï¥Î¤u¨ãÄæ©Mª¬ºAÄæªº®Ú·½µ{¦¡
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; ¬O§_¥]¬A½Õ¸Õ¥N½X
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DEBUG  = 1
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Programmed by ù¶³±l, bigluo@telekbird.com.cn
; Website: http://asm.yeah.net
; LuoYunBin's Win32 ASM page (ù¶³±lªº½sµ{¼Ö¶é)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; ª©¥»¸ê°T
; ¤u¨ãÄæ©Mª¬ºAÄæºt¥Üµ{¦¡ Ver 1.0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  .386
  .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  gdi32.inc

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

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

IDI_MAIN equ  1000  ;icon
IDM_MAIN equ  4000  ;menu
IDM_TOOLBAR equ  4001
IDM_STATUSBAR equ  4002
IDM_EXIT equ  4003
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; ¸ê®Æ¬q
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  .data?
hInstance dd  ?
hWinMain dd  ?
hMenu  dd  ?
hIcon  dd  ?
hToolbar dd  ?
hStatusbar dd  ?

szBuffer db 256 dup (?)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; ¸ê®Æ¬q
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  .data
szClassName db "Toolbar Template",0
szCaptionMain db '¤u¨ãÄæ©Mª¬ºAÄæºt¥Üµ{¦¡ - ù¶³±l',0
dwFlag  dd F_TOOLBAR or F_STATUSBAR
;********************************************************************
; ¼Ð»x¦ì¤¸©w¸q
F_TOOLBAR equ 00000001b
F_STATUSBAR equ 00000010b
stToolbar TBBUTTON < STD_FILENEW,1,TBSTATE_ENABLED,TBSTYLE_BUTTON,2 dup(0),-1>
  TBBUTTON <0,0,TBSTATE_ENABLED,TBSTYLE_SEP,2 dup(0),-1>
  TBBUTTON < STD_FILEOPEN,2,TBSTATE_ENABLED,TBSTYLE_BUTTON,2 dup(0),-1>
  TBBUTTON < STD_FILESAVE,3,TBSTATE_ENABLED,TBSTYLE_BUTTON,2 dup(0),-1>
  TBBUTTON <0,0,TBSTATE_ENABLED,TBSTYLE_SEP,2 dup(0),-1>
  TBBUTTON < STD_PRINT,4,TBSTATE_ENABLED,TBSTYLE_BUTTON,2 dup(0),-1>
  TBBUTTON < STD_PRINTPRE,0,TBSTATE_ENABLED,TBSTYLE_SEP,2 dup(0),-1>
NUM_BUTTONS EQU 7

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

  .code
if  DEBUG
include  Debug.asm
endif

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; µ{¦¡¶}©l
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
  call _WinMain
  invoke ExitProcess,NULL

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

;********************************************************************
; ¦pªG¤w¸g¦b¹B¦æ¡A«h±Ò°Ê¤w¹B¦æªº¶iµ{
;********************************************************************
  invoke FindWindow,offset szClassName,NULL
  .if eax != NULL
   invoke ShowWindow,eax,SW_SHOWNORMAL
   invoke ExitProcess,NULL
  .endif

  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_BTNFACE+1
  mov @stWcMain.lpszClassName,offset szClassName
  mov @stWcMain.lpszMenuName,0
  invoke RegisterClassEx,addr @stWcMain
;*************** «Ø¥ß¿é¥Xµøµ¡ ***************************************
  invoke CreateWindowEx,NULL,\ ;WS_EX_CLIENTEDGE,\
   offset szClassName,offset szCaptionMain,\
   WS_OVERLAPPEDWINDOW,\ ; OR WS_VSCROLL OR WS_HSCROLL,\
   50,50,550,350,\
   NULL,hMenu,hInstance,NULL

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

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

  mov eax,uMsg
  .if eax == WM_CREATE
   mov eax,hWnd
   mov hWinMain,eax
   call _Init
;********************************************************************
  .elseif eax == WM_SIZE
   invoke SendMessage,hStatusbar,uMsg,wParam,lParam
   invoke SendMessage,hToolbar,uMsg,wParam,lParam
;********************************************************************
  .elseif eax == WM_COMMAND
   mov eax,wParam
   movzx eax,ax
   .if eax == IDM_EXIT
    call _Quit
   .elseif eax == IDM_TOOLBAR
    xor dwFlag,F_TOOLBAR
    call _ArrangeWindow
   .elseif eax == IDM_STATUSBAR
    xor dwFlag,F_STATUSBAR
    call _ArrangeWindow
   .else
    _Debug "¥\¯àªí©M¤u¨ãÄæ©R¥O\","©R¥OID",eax
   .endif
;********************************************************************
  .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

  invoke SendMessage,hWinMain,WM_SETICON,ICON_SMALL,hIcon
  invoke CreateToolbarEx,hWinMain,\
   WS_VISIBLE or WS_CHILD or TBSTYLE_FLAT or WS_BORDER,\
   1,0,HINST_COMMCTRL,IDB_STD_SMALL_COLOR,offset stToolbar,\
   NUM_BUTTONS,0,0,0,0,sizeof TBBUTTON
  mov hToolbar,eax

  invoke CreateStatusWindow,WS_CHILD or WS_VISIBLE,NULL,hWinMain,2
  mov hStatusbar,eax
  call _ArrangeWindow

  ret
_Init  endp
;********************************************************************
_Quit  proc

  invoke DestroyWindow,hWinMain
  invoke PostQuitMessage,NULL
  ret

_Quit  endp
;********************************************************************
_ArrangeWindow proc
  local @stRect:RECT
  local @stRectTemp:RECT
  local @dwWidth:DWORD

  test dwFlag,F_TOOLBAR
  .if ZERO?
   invoke ShowWindow,hToolbar,SW_HIDE
   invoke CheckMenuItem,hMenu,IDM_TOOLBAR,MF_UNCHECKED
  .else
   invoke ShowWindow,hToolbar,SW_SHOW
   invoke CheckMenuItem,hMenu,IDM_TOOLBAR,MF_CHECKED
  .endif
  test dwFlag,F_STATUSBAR
  .if ZERO?
   invoke ShowWindow,hStatusbar,SW_HIDE
   invoke CheckMenuItem,hMenu,IDM_STATUSBAR,MF_UNCHECKED
  .else
   invoke ShowWindow,hStatusbar,SW_SHOW
   invoke CheckMenuItem,hMenu,IDM_STATUSBAR,MF_CHECKED
  .endif

  ret
_ArrangeWindow endp
;********************************************************************
  end start

µ{¦¡ªº¤ÀªR©M­nÂI
    ¦b¤u¨ãÄæ©Mª¬ºAÄæ½sµ{¤¤¡A­nª`·Nªº´N¬O¤u¨ãÄæ©Mª¬ºAÄæ¨Ã¤£·|ÀH¤÷µøµ¡ªº¤j¤pÅܤƦۤv½Õ¾ã¦ì¸m©M¤j¤p¡A©Ò¥H­n¦b¤÷µøµ¡ªº WM_SIZE ®ø®§¤¤¨Ó²¾°Ê©M½Õ¾ã¥¦­Ì¡A³o¥i¥H²³æªº§â WM_SIZE ®ø®§¶Çµ¹¥¦­Ì´N¦æ¤F¡C¤£¥²¦Û¤v¦A¥h­pºâ¡C
  .elseif eax == WM_SIZE
   invoke SendMessage,hStatusbar,uMsg,wParam,lParam
   invoke SendMessage,hToolbar,uMsg,wParam,lParam
¥t¥~¡A¤u¨ãÄæ©Mª¬ºAÄæ¤]¬O¤@ºØ¤lµøµ¡¡A©Ò¥H¦pªG·Q§â¥¦­ÌÁôÂéÎÅã¥Üªº¸Ü¡A¥i¥H¥Î¼Ð·Çªº ShowWindow ¨Ó³B²z¡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-10-11 18:25

Advertisting Agency

Audit and Analytics

Partner Companies

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