³o¤@³¹¡A¤p¤ì°¸¥´ºâ¤¶²Ð¦b WIN64 ¨t²Î¤U¡A¥H²Õ¦X»y¨¥¼¶¼g¹ï¸Ü²°¬É±ªºµ{¦¡¡C¥H¹ï¸Ü²°¬°¬É±ªºµ{¦¡¡A«Ø¥ßµøµ¡«Ü¤è«K¡A¦Ó¥B¯à³B²z³\¦h¤H¾÷¬É±ªº°ÝÃD¡A¦¹¥~¤£¶·¼¶¼g°T®§°j°é¡B«Ø¥ßµøµ¡Ãþ§Oµ¥µ{¦¡½X¡A¬J¤è«K¤S²¼ä¡A¤p¤ì°¸«Ü³ßÅw³oÃþµ{¦¡¡C©³¤U¤¶²Ð¼¶¼g³oºØµ{¦¡ªº¹Lµ{¡C
»P WIN32 ¨t²Î¤@¼Ë¡An¥ý«Ø¥ß¸ê·½´yzÀÉ ( °ÆÀɦW¬° *.RC )¡A¸ê·½´yzÀɬO¤@ºØ¯Â¤å¦rÀÉ¡AÀ³¥H ASCII ½s½X¤è¦¡Àx¦s¡CµM«á¦b¸ê·½´yzÀÉùر¡A¥[¤W¤@ÓºÙ¬°¹ï¸Ü²°±ªO ( dialog template ) ªº¬q¸¨¡C¹ï¸Ü²°±ªOùر±Ôz¤F¹ï¸Ü²°·®æ¡B¦r§Îµ¥ÄÝ©Ê¡AÁÙ¦³¦UºØ±±¨î¶µ¡C©³¤U´N¬O±`¨£ªº¹ï¸Ü±ªOªº¼Ò¼Ë¡G
1 2 3 4 5
6 7 8 9 10
11 12 13 14 |
name DIALOG x, y, width, height
CAPTION caption_text
CHARACTERISTICS dword
CLASS class_name
EXSTYLE extended-styles
FONT pointsize, typeface
LANGUAGE language, sublanguage
MENU menuname
STYLE sytle
VERSION dword
BEGIN
CONTROL "text", ID, class_name, style, x, y, width, height, exStyle
¡K¡K END |
¤W±ªº¹ï¸Ü²°±ªO¡A±q²Ä 2¡ã10 ¦æ¡A³£¬O¥i¦³¥iµLªº¿ï¶µ¡A¦pªG¨S³]©w¡A´N·|¨Ì¾Ú¤º©wÈ¡C²Ä 11 ©M²Ä 14 ¦æ¡A¬O¤@¹ï BEGIN/END¡A¤]¥i¥H¥Î¤@¹ï {¡B} ¥N´À¡A¦b BEGIN/END ©Î {¡B} ¤º¥]§t¤F¦UºØ±±¨î¶µ¡A¨C¤@±ø CONTROL ¥Nªí¤@Ó±±¨î¶µ¡C©³¤U¥ý»¡©ú¥i¦³¥iµLªº¿ï¶µ¡C
CAPTION "³Ì¤j¤½¦]¼Æ»P³Ì¤p¤½¿¼Æ"
FONT 8,"Times New Roman"
¼Ò¦¡¹ï¸Ü²°ªºÆ[©À©M¦b Win32 ¨t²Î¤@¼Ë¡A¥¦¬O¤@Ó¥]§tµÛ³\¦h¤lµøµ¡ªºµøµ¡¡C³o¨Ç¤lµøµ¡ ( child window ) ¤]¥s±±¨î¤¸¥ó ( ^¤åºÙ control¡A©Î²ºÙ¡u±±¥ó¡v©Î¡u±±¨î¶µ¡v)¡C¦p¦P¤W±Á¿¹L¡A³o¨Ç±±¨î¶µ¥]§t¦b¹ï¸Ü²°±ªOªº BEGIN/END ±ÔzùØ¡C©w¸q±±¨î¶µ¦³¨âºØ¤èªk¡A²Ä¤@ºØ¬O
CONTROL "text", ID, class_name, style, x, y, width, height, exStyle
"text" ¬O±±¨î¶µªº¹w©w¤å¦r¡AID ¬OÃѧO¸¹½X¡Ax¡By ¬O¤lµøµ¡ªº¦ì¸m¡Awidth¡Bheight ¬O¤lµøµ¡ªº¼e»P°ª¡Astyle ¬O¤lµøµ¡·®æ¡Cclass_name ¬O¦b¨t²Î¤¤¤w¹w¥ý©w¸qªºµøµ¡Ãþ§O¡A¥i¥H¥Î STATIC ªí¥ÜÀRºAÃþ§O¡ABUTTON ªí¥Ü«ö¶sÃþ§O¡AEDIT ªí¥Ü½s¿è®ØÃþ§O¡ACOMBOBOX ªí¥Ü½Æ¦XÃþ§O¡ALISTBOX ªí¥Ü¦Cªí²°Ãþ§O¡ASCROLLBAR ªí¥Ü±²¶bÃþ§Oµ¥¤»ºØ¡C
¤£¦PÃþ§Oªº±±¨î¶µ¥i¥Îªº·®æ¤£ºÉ¬Û¦P¡A¨Ò¦p½s¿è®Ø±±¨î¶µ»P«ö¶s±±¨î¶µ¬Ý°_¨Ó¬OºIµM¤£¦Pªº¨âºØªº±±¨î¶µ¡AµM«h¥¦Ì³£¬O¤lµøµ¡¡A²£¥Í¤èªk¬Û¦P¦ý¨ã¦³¤£¦Pªº·®æ¡A¦Ó¬Oµ¡Ãþ§OºØÃþ¦Ü¤Ö¦³³o¤»ºØ¡A©Ò¨Ï¥Î·®æ§ó¦h¡A©Ò¥HnÁA¸Ñ¥¦Ì¤£¨Æ¥ó©ö¨Æ¡C¦³®É§Y¨Ï¬O¦P¤@Ãþ§Oªºµøµ¡¡A¨ä¥~Æ[»P¨Ï¥Î¤è¦¡¥ç¬Û¥h¬Æ»·¡A¨Ò¦p BUTTON Ãþ§O¤¤¦³ÀËÅç²°¡B¤UÀ£¦¡«ö¶s¡B¶ê§Î«ö¶sµ¥¼ÆºØ±±¨î¶µ¡C¹³³o¼Ë¨ã¦³¬Û¦Pªºµøµ¡Ãþ§O¡A«o¦]·®æ¤£¦P¦Ó¥~Æ[»P¨Ï¥Î¤è¦¡¤]¤£¦P¡A¶È¥H·®æ¨Ó°Ï§O¡A¨Ã¤£¬O¤@¥Ø¤FµMªº°µªk¡C¤U±ªº¨Ò¤l¤¤¡A²Ä¤@Óªí¥Ü¤UÀ£¦¡«ö¶s±±¨î¶µ¡A²Ä¤GÓ¬OÀËÅç²°±±¨î¶µ¡G
CONTROL "½T©w" ,1,"BUTTON",BS_PUSHBUTTON,100, 20, 50, 14 CONTROL "¦V¥k¹ï»ô",2,"BUTTON",BS_CHECKBOX , 10, 10, 50, 14
¦ý¬O¦pªG¤£¸Ô²ÓÀˬd¨ä«áªº·®æ¡A«Ü¤£®e©ö§PÂ_¡A¦³®É·®æ¬O¤S¯ä¤Sªø¡A¨º»ò§PŪ§ó¬°§xÃø¡C©Ò¥H RC.EXE ¤]¤¹³\²Ä¤GºØªí¥Ü±±¥ó¶µªº¤è¦¡¡G
control-type "text", ID, x, y, width, height [,styles]
³o®É control-type ´N¯àªí¥Ü¥X¦UºØ±±¨î¶µ»P³¡¤À·®æ¤F¡A¨Ò¦p¤U±¥kÃä¬O¥H¶Ç²Î¤è¦¡ªí¹F¤UÀ£¦¡«ö¶s»PÀËÅç²°ªº¤è¦¡¡A¦Ó¥kÃä«h¬O¥H¸û¬°Â²¼äªº¤è¦¡ªí¹F¡A¨Æ¹ê¤W¡A¨âªÌ¬O¬Û¦Pªº¡C
PUSHBUTTON "½T©w" ,1,100, 20, 50, 14 CHECKBOX "¦V¥k¹ï»ô",2, 10, 10, 50, 14 |
CONTROL "½T©w" ,1,"BUTTON",BS_PUSHBUTTON,100, 20, 50, 14 CONTROL "¦V¥k¹ï»ô",2,"BUTTON",BS_CHECKBOX , 10, 10, 50, 14 |
¥H²¼ä¤è¦¡´yz±±¨î¶µªº¤è¦¡¡A¥i¥H«öµù¥|¾\Ū¡C
©³¤U§ó¶i¤@¨B»¡©ú CLASS ¦b«Ø¥ß¼Ò¦¡»P«D¼Ò¦¡¹ï¸Ü²°ªº¨¤¦â¡G
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30
31 32 33 34 35
36 37 38 39 40
41 42 43 44 45
46 47 48 49 50
51 52 53 54 |
OPTION CASEMAP:NONE
OPTION WIN64:3
UNICODE EQU 1 ;¨Ï¥Î¸U°ê½X
;¹ï¸Ü²°¤ºªº±±¨î¶µÃѧO½X©ñ¦b³oùØ
INCLUDE WINDOWS.INC
INCLUDELIB KERNEL32.LIB
INCLUDELIB USER32.LIB
;µø»Ý¨D¡A¦b¦¹³B¥[¤J¥²nªº¶×¤Jµ{¦¡®w
;*************************************************************************************************************
.CONST
;±`¼Æ¸ê®Æ©ñ¦b³oùØ
;*************************************************************************************************************
.DATA
;¥¼ªì©l¤Æªº¸ê®Æ©ñ¦b³oùØ
;*************************************************************************************************************
.CODE
;-------------------------------------------------------------------------------------------------------------
DlgProc PROC hDlg:QWORD,uMsg:DWORD,wParam:QWORD,lParam:QWORD
.IF rdx==WM_INITDIALOG
;¹ï¸Ü²°¤@«Ø¥ß¡A´Nn°õ¦æªºµ{¦¡½X
.ELSEIF rdx==WM_COMMAND
mov r10,r8
mov r11,r8
shr r10,20h ;R10D¡×³qª¾½X
and r11,0ffffffffh ;R11D¡×±±¨î¶µÃѧO½X
.IF r10d==BN_CLICKED
;¦b³oùؼ¶¼g«ö¶s³QÀ£¤U®Éªº³B²z¤è¦¡
.ENDIF
.ELSEIF rdx==WM_CLOSE
exit: INVOKE EndDialog,hDlg,0
.ELSE ;¨ä¥L¥¼³B²zªº°T®§ªð¦^ FALSE
mov rax,0
ret
.ENDIF ;¤w³B²zªº°T®§¡Aªð¦^ TRUE
mov rax,1
ret
DlgProc ENDP
;-------------------------------------------------------------------------------------------------------------
main PROC
INVOKE GetModuleHandle,0
mov hInstance,rax
INVOKE DialogBoxParam,hInstance,OFFSET szDlgName,0,OFFSET DlgProc,0
INVOKE ExitProcess,eax
INVOKE InitCommonControls
main ENDP
;*************************************************************************************************************
END main |
©³¤U¥H¤@Ó¨Ò¤l¡A¨D³Ì¤j¤½¦]¼Æ¡A¨Ó»¡©ú¡u¥H¹ï¸Ü²°¬°¥D¡vªºµ{¦¡¼¶¼g¹Lµ{¡C
±µ¤U¨Ó¼g¤@Ó½d¨Ò¡A³oÓµ{¦¡¯àÅý¨Ï¥ÎªÌ¿é¤J¨âÓ¥¿¾ã¼Æ¡AµM«ápºâ³o¨âÓ¥¿¾ã¼Æªº³Ì¤j¤½¦]¼Æ»P³Ì¤p¤½¿¼Æ¡C°õ¦æµe±¦p¤U¹Ï¡G
¦b¼Æ¾Ç¤W¡Anpºâ¨â¥¿¾ã¼Æªº³Ì¤j¤½¦]¼Æ¡A¥i¥H¥ÎÁÓÂà¬Û°£ªk¡C¨BÆJ¬O¥ý¬D¿ï¸û¤jªº¼Æ¬°³Q°£¼Æ¡A¸û¤pªº¼Æ¬°°£¼Æ¡A¬Û°£¤§«áªº¾l¼Æ¬°°£¼Æ¡Aì¨Óªº°£¼ÆÅܬ°³Q°£¼Æ¡A¦A¬Û°£¡C¦p¦¹¤@ª½«½Æ¤Wz¨BÆJ¡Aª½¨ì¾l¼Æ¬°¹s®É¡A¸Ó¦¸°£¼Æ¬°³Ì¤j¤½¦]¼Æ¡A¥i¥H°Ñ¦Ò¤U±ªº¬yµ{¹Ï¡C¹Ï¤¤¡A¬°°t¦X²Õ¦X»y¨¥°£ªk¡A¬G¥H¼È¦s¾¹ªí¥Ü¡C¦b²Õ¦X»y¨¥ùØ¡A°£ªk¤¤ªº³Q°£¼Æ§¡©ñ¦b RDX:RAX ¼È¦s¾¹ùØ¡A°£¼Æ¥i¥Î¥ô¦ó¤@Ó 64 ¦ì¤¸¼È¦s¾¹¡A©Î 64 ¦ì¤¸ªºÅܼƪí¥Ü¡C¦Ó¦b¨C¦¸¬Û°£¤§«e¡An§â RDX ³]¬° 0¡A¥H§K¼vÅTµ²ªG¡C
©³¤U¬O GCD64.ASM ªº¤º®e¡G
1 2 3 4
5 6 7 8
9
10 11 12 13
14 15 16 17
18 19 20 21
22 23 24 25
26 27 28 29
30 31 32 33
34 35 36 37
38 39 40 41
42 43 44 45
46 47 48 49
50 51 52 53
54 55 56 57
58 59 60 61
62 63 64 65
66 67 68 69
70 71 72 73
74 75 76 77
78 79 80 81
82 83 84 85
86 87 88 89
90 91 92 93
94 95 96 97
98 99
100 101 102 103
104 105 106 107
108 109 110 |
OPTION CASEMAP:NONE
OPTION WIN64:3
UNICODE EQU 1 ;¨Ï¥Î¸U°ê½X
IDC_NUM1 EQU 20000
IDC_NUM2 EQU 20001
IDC_GCD EQU 20003
IDC_LCM EQU 20004
IDC_CALC EQU 20005
IDC_EXIT EQU 20006
INCLUDE WINDOWS.INC
INCLUDE COMMCTRL.INC
INCLUDELIB KERNEL32.LIB
INCLUDELIB USER32.LIB
INCLUDELIB COMCTL32.LIB
;*************************************************************************************************************
.CONST
szDlgName DW 47h,43h,44h,0h ;¹ï¸Ü²°±ªO¦WºÙ¡×GCD
szIcon DW 47h,43h,44h,5fh,4ch,43h,4dh,0h ;¹Ï¥Ü¦WºÙ¡×GCD_LCM
szGCD DW 6700h,5927h,516ch,56e0h,6578h,70bah,0ff1ah,25h,75h,0h ;³Ì¤j¤½¦]¼Æ¬°¡G%u
szLCM DW 6700h,5c0fh,516ch,500dh,6578h,70bah,0ff1ah,25h,75h,0h ;³Ì¤p¤½¿¼Æ¬°¡G%u
;*************************************************************************************************************
.DATA
hInstance DQ ? ;°õ¦æ¹ê¨Ò¥N½X
nNum1 DQ ?
nNum2 DQ ?
nGCD DQ ? ;GCD
nLCM DQ ? ;LCM
Translated DQ ? ;©I¥sGetDlgItemIntªð¦^«á¡A¬O§_¿ù»~
szAnswer DB 100 DUP (?)
;*************************************************************************************************************
.CODE
;-------------------------------------------------------------------------------------------------------------
;¨DRAX¡BR10¨â¼È¦s¾¹¤ºªº³Ì¤j¤½¦]¼Æ
find_gcd_lcm PROC
mov rax,nNum1
mov r10,nNum2
;¥ý¨D³Ì¤j¤½¦]¼Æ¡A¥ÎÁÓÂà¬Û°£ªk¡C¥ý¤ñ¸ûRAX¡BR10¦óªÌ¬°¤j¡A¤jªº·í³Q°£¼Æ¡A¦s©óEAXùØ¡F¤pªº·í°£¼Æ¡A¦s©ónGCDùØ¡C
;¨âªÌ¬Û°£¡A¦pªG¾l¼Æ¤£¬°¹s¡A«hì°£¼ÆÅܬ°³Q°£¼Æ¡A¾l¼ÆÅܬ°°£¼Æ¡A¦A«½Æ¬Û°£¡Aª½¨ì¾l¼Æ¬°¹s®É¡A³Ì¤j¤½¦]¼Æ§Y¬°°£¼Æ¡C
.IF rax<r10
mov nGCD,rax
mov rax,r10
.ELSE
mov nGCD,r10
.ENDIF
next_loop: sub rdx,rdx
div nGCD
.IF edx!=0
mov rax,nGCD
mov nGCD,rdx
jmp next_loop
.ENDIF
sub rdx,rdx
mov r11,nGCD
mov rax,nNum1
div r11
mul nNum2
mov nLCM,rax
ret
find_gcd_lcm ENDP
;-------------------------------------------------------------------------------------------------------------
DlgProc PROC hDlg:QWORD,uMsg:DWORD,wParam:QWORD,lParam:QWORD
.IF rdx==WM_INITDIALOG
INVOKE LoadIcon,hInstance,OFFSET szIcon
INVOKE SendMessage,hDlg,WM_SETICON,ICON_SMALL,rax
.ELSEIF rdx==WM_COMMAND
mov r10,r8
mov r11,r8
shr r10,20h ;R10D=³qª¾½X
and r11,0ffffffffh ;R11D=±±¨î¤¸¥óÃѧO½X
.IF r10d==BN_CLICKED
.IF r11d==IDC_EXIT
jmp exit
.ELSEIF r11d==IDC_CALC
INVOKE GetDlgItemInt,hDlg,IDC_NUM1,OFFSET Translated,0
mov nNum1,rax
INVOKE GetDlgItemInt,hDlg,IDC_NUM2,OFFSET Translated,0
mov nNum2,rax
call find_gcd_lcm
INVOKE wsprintf,OFFSET szAnswer,OFFSET szGCD,nGCD
INVOKE SetDlgItemText,hDlg,IDC_GCD,OFFSET szAnswer
INVOKE wsprintf,OFFSET szAnswer,OFFSET szLCM,nLCM
INVOKE SetDlgItemText,hDlg,IDC_LCM,OFFSET szAnswer
.ENDIF
.ENDIF
.ELSEIF rdx==WM_CLOSE
exit: INVOKE EndDialog,hDlg,0
.ELSE ;¨ä¥L¥¼³B²zªº°T®§ªð¦^ FALSE
mov rax,0
ret
.ENDIF ;¤w³B²zªº°T®§¡Aªð¦^ TRUE
mov rax,1
ret
DlgProc ENDP
;-------------------------------------------------------------------------------------------------------------
main PROC
INVOKE GetModuleHandle,0
mov hInstance,rax
INVOKE DialogBoxParam,hInstance,OFFSET szDlgName,0,OFFSET DlgProc,0
INVOKE ExitProcess,eax
INVOKE InitCommonControls
main ENDP
;*************************************************************************************************************
END main |
©³¤U¬O GCD64.RC ªº¤º®e¡G
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 |
#include "c:\masm32\include\resource.h"
#define RT_MANIFEST 24
#define IDC_NUM1 20000
#define IDC_NUM2 20001
#define IDC_GCD 20003
#define IDC_LCM 20004
#define IDC_CALC 20005
#define IDC_EXIT 20006
GCD DIALOG 800,300,122,90
STYLE DS_MODALFRAME|WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU|DS_CENTERMOUSE|DS_CONTEXTHELP
FONT 8,"Times New Roman"
CAPTION "³Ì¤j¤½¦]¼Æ»P³Ì¤p¤½¿¼Æ"
BEGIN
CONTROL "¿é¤J²Ä¤@Ó¥¿¾ã¼Æ¡G", -1,"static",SS_LEFT|WS_CHILD|WS_VISIBLE|WS_GROUP, 6, 6, 75, 14
CONTROL "¿é¤J²Ä¤GÓ¥¿¾ã¼Æ¡G", -1,"static",SS_LEFT|WS_CHILD|WS_VISIBLE|WS_GROUP, 6,20, 75, 14
EDITTEXT IDC_NUM1,80, 4, 38, 12, WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_AUTOHSCROLL
EDITTEXT IDC_NUM2,80,19, 38, 12, WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_AUTOHSCROLL
CONTROL "³Ì¤j¤½¦]¼Æ¬°¡G",IDC_GCD,"static",SS_LEFT|WS_CHILD|WS_VISIBLE|WS_GROUP, 6,34,100, 14
CONTROL "³Ì¤p¤½¿¼Æ¬°¡G",IDC_LCM,"static",SS_LEFT|WS_CHILD|WS_VISIBLE|WS_GROUP, 6,48,100, 14
DEFPUSHBUTTON "pºâ" ,IDC_CALC,10,65, 50,18
PUSHBUTTON "Â÷¶}" ,IDC_EXIT,63,65, 50,18
END
1 RT_MANIFEST MOVEABLE PURE "GCD64.EXE.MANIFEST"
GCD_LCM ICON GCD_LCM.ico |
¶i¤J¡u©R¥O´£¥Ü¦r¤¸¡v«á¡A¥ý°õ¦æ«e¤@³¹ªº JWASM.BAT¡A³oÓµ{¦¡¬O¥Î¨Ó³]©w²ÕĶÀô¹Ò¡A¸Ô²Ó±¡§Î°Ñ¾\«e¤@³¹¡C±µ¤U¨Ó¡A¤Á´«¨ìì©lµ{¦¡©Ò¦bªººÏºÐ¾÷»P¤l¥Ø¿ýùØ¡AµM«á¤~½sĶ¸ê·½´yzÀÉ¡B²ÕĶ²Õ¦X»y¨¥ì©lµ{¦¡¡B³sµ²¡C½Ð¬Ý¤U±ªº¨BÆJ¡G
C:\Users\wanker>jwasm [Enter] C:\Users\wanker>SET INCLUDE=C:\JWASM\INCLUDE; C:\Users\wanker>SET LIB=C:\JWASM\LIB; C:\Users\wanker>SET PATH=C:\JWASM;C:\ProgramData\Oracle\Java\javapath;C:\Windows \system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerSh ell\v1.0\ C:\Users\wanker>SET LINK=/SUBSYSTEM:WINDOWS /DEBUG C:\Users\wanker>E: [Enter] ¡÷¤Á´«¨ìì©lµ{¦¡©Ò¦bªººÏºÐ¾÷ùØ E:\>cd E:\HomePage\SOURCE\WIN64\GCD_LCM [Enter] ¡÷¤Á´«¨ìì©lµ{¦¡©Ò¦bªº¤l¥Ø¿ýùØ E:\HomePage\SOURCE\Win64\GCD_LCM>rc gcd64.rc [Enter] Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 Copyright (C) Microsoft Corporation. All rights reserved. E:\HomePage\SOURCE\Win64\GCD_LCM>jwasm -win64 gcd64.asm [Enter] JWasm v2.12pre, Nov 27 2013, Masm-compatible assembler. Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved. Source code is available under the Sybase Open Watcom Public License. GCD64.ASM: 109 lines, 2 passes, 842 ms, 0 warnings, 0 errors E:\HomePage\SOURCE\Win64\GCD_LCM>link gcd64.obj gcd64.res [Enter] Microsoft (R) Incremental Linker Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. /SUBSYSTEM:WINDOWS /DEBUG E:\HomePage\SOURCE\Win64\GCD_LCM>
³o¤@³¹¥u¼g¥X¦p¦ó¥Î Win64 ²Õ¦X»y¨¥»s§@¼Ò¦¡¹ï¸Ü²°¬°°ò¦ªºµøµ¡µ{¦¡¡A±z±on¦³ Win32 ªº°ò¦¤~¦æ¡A½Ð°Ñ¾\Win32 ²Õ¦X»y¨¥ªº¹ï¸Ü²°»P¸ê·½ÀÉ¡C
»y¤å | Language ¤Î¼ÆÈ | Sublanguage | Sublanguage ¤§¼ÆÈ | »¡¡@¡@©ú |
¤¤¤å | LANG_CHINESE 04h |
SUBLANG_CHINESE_TRADITIONAL | 01h | ¤¤µØ¥Á°ê¨Ï¥Î¥¿Å餤¤å |
SUBLANG_CHINESE_SIMPLIFIED | 02h | ¤j³°¤W¨Ï¥Î²Å餤¤å | ||
SUBLANG_CHINESE_HONGKONG | 03h | »´ä¨Ï¥Îªº¥¿Å餤¤å | ||
SUBLANG_CHINESE_SINGAPORE | 04h | ·s¥[©Y¨Ï¥Îªº¥¿Å餤¤å | ||
SUBLANG_CHINESE_MACAU | 05h | ¿Dªù¨Ï¥Îªº¥¿Å餤¤å | ||
^¤å | LANG_ENGLISH 09h |
SUBLANG_ENGLISH_US | 01h | ¬ü°ê¨Ï¥Îªº^¤å |
SUBLANG_ENGLISH_UK | 02h | ^°ê¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_AUS | 03h | ¿D¬w¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_CAN | 04h | ¥[®³¤j¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_NZ | 05h | ¯Ã¦èÄõ¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_IRELAND | 06h | ·Rº¸Äõ¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_SOUTH_AFRICA | 07h | «n«D¦@©M°ê¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_JAMAICA | 08h | ¤ú¶R¥[¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_CARIBBEAN | 09h | ¥[°Ç¤ñ¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_BELIZE | 0ah | ¨©¨½´µ¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_TRINIDAD | 0bh | ¤d¨½¹F¤Î¦«¤Úô¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_ZIMBABWE | 0ch | ¨¯¤Ú«Â¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_PHILIPPINES | 0dh | µá«ß»«¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_INDIA | 10h | ¦L«×¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_MALAYSIA | 11h | °¨¨Ó¦è¨È¨Ï¥Îªº^¤å | ||
SUBLANG_ENGLISH_SINGAPORE | 12h | ·s¥[©Y¨Ï¥Îªº^¤å | ||
¥_¦L«×»y | LANG_HINDI 39h |
SUBLANG_HINDI_INDIA | 01h | ¦L«×¨Ï¥Îªº»y¨¥ |
language »P sublanguage ¦X°_¨Ó²Õ¦¨¤@Ó¦r²Õ ( 16 ¦ì¤¸ªø ) ºÙ¬°»y¨¥ÃѧO½X ( language identifier )¡C³oÓ¦r²Õªº 0¡ã9 ¦ì¤¸¥Nªí language¡A²Ä 10¡ã15 ¦ì¤¸¥Nªí sublanguage¡C¨Ò¦p¬d¾\¤Wªí¡A¥iª¾¤¤µØ¥Á°ê¥xÆW¦a°Ï¨Ï¥Îªº¥¿Å餤¤å¤§¡usublanguage¡v¬° 01h¡A¦Ó¡ulanguage¡v¬° 04h¡A¨Ì¾Ú¡ulanguage¡v¬° 0¡ã9 ¦ì¤¸¡B¡usublanguage¡v¬°²Ä 10¡ã15 ¦ì¤¸¦X¨Ö«á¡A»y¨¥ÃѧO½X´N¬O 0404h¡A²Õ¦¨¤è¦¡°Ñ¨£¤U¹Ï¡G
·®æ | ¼ÆÈ | »¡¡@¡@©ú |
DS_3DLOOK | 4h | ¤£¥Î²ÊÅé¦r¡A¦P®É¥H¤Tºû¤è¦¡µe¥X¹ï¸Ü²°¤ºªº±±¨î¶µ¥|©PªºÃä®Ø¡C |
DS_ABSALIGN | 1h | ¹ï¸Ü²°ªº®y¼Ð¨Ï¥Î¿Ã¹õ®y¼Ð¡A¦Ó¤£¬O¹ï¸Ü²°¤u§@°Ïªº®y¼Ð¡C |
DS_CENTER | 800h | §â¹ï¸Ü²°©ñ¸m¦b®à±ªº¤¤¥¡¡A©Ò¿×ªº¤¤¥¡¬O¤£§t©³¤Uªº¤u§@¦C¡C§Y¨Ï¦b¡uname DIALOG x, y, cx, cy¡v«ü©w¤F x¡By¡A¦Ó¤S¦P®É¨ã¦³ DS_CENTER ·®æ¡A¨t²Î¤´·|§â¹ï¸Ü²°©ñ¦b¤¤¥¡¡C |
DS_CENTERMOUSE | 1000h | ¦b·Æ¹«´å¼Ð¦ì¸m¤WÅã¥Ü¹ï¸Ü²°¡C |
DS_CONTEXTHELP | 2000h | ¦b¼ÐÃDÄæ¥kÃäÅã¥Ü¡u»¡©ú«ö¶s¡v¡C·í¨Ï¥ÎªÌ«ö¤U¡u»¡©ú«ö¶s¡v«á¡A¹C¼Ð·|Åܦ¨¡AµM«á¨Ï¥ÎªÌ¦b¬YÓ±±¨î¶µ«ö¤U·Æ¹«¥ªÁä«á¡A¨t²Î·|§â WM_HELP ¶Çµ¹±±¨î¶µªºµøµ¡¨ç¦¡¡C¤@¯ë¦Ó¨¥¡A±±¨î¶µ¤£³B²z¡A¦Ó¶Çµ¹¹ï¸Ü²°ªºµøµ¡¨ç¦¡¡AµM«á¦b¹ï¸Ü²°ªºµøµ¡¨ç¦¡¤¤¥H HELP_WM_HELP ¬°°Ñ¼Æ¡A©I¥s WinHelp API¡AÅã¥Ü»¡©ú¤º®e¡C |
DS_CONTROL | 400h | ¨ã¦³¦¹·®æªº¹ï¸Ü²°ªº¦æ¬°¡A¹³¬O¥t¤@Ó¹ï¸Ü²°ªº¤lµøµ¡¡A¯àÅý¨Ï¥ÎªÌ¥H Tab Áä©Î§Ö±¶Áä¾Þ§@¹ï¸Ü²°ªº±±¨î¶µ¡C |
DS_FIXEDSYS | 8h | ¥Î SYSTEM_FIXED_FONT ¥N´À¤º©wªº SYSTEM_FONT¡A¥ç§Y¨Ï¥Î©T©w¼e«×ªº¦r§Î§@¬°¹ï¸Ü²°¦r§Î¡C |
DS_LOCALEDIT | 20h | ¥u¯à¥Î©ó 16 ¦ì¤¸µ{¦¡¡A¥i¨Ï¹ï¸Ü²°½s¿è®Øªº¸ê®Æ¦bµ{¦¡ªº¸ê®Æ°Ï¬q¤º¡C |
DS_MODALFRAME | 80h | «Ø¥ß¼Ò¦¡¹ï¸Ü²°¥~®Ø¡A±`»P WS_CAPTION¡BWS_SYSMENU ¦X¥Î¡A¤À§OÅã¥Ü¼ÐÃDÄæ»P¨t²Î¿ï³æ¡C |
DS_NOFAILCREATE | 10h | §Y¨Ï¿ù»~µo¥Í¡A¤]«Ø¥ß¹ï¸Ü²°¡C¨Ò¦p¹ï¸Ü²°¤ºªº±±¨î¶µµLªk«Ø¥ß¡A©Î½s¿è®ØµLªk°t¸m°O¾ÐÅé¡A¨t²Î¤´«Ø¥ß¹ï¸Ü²°¡C |
DS_NOIDLEMSG | 100h | ·í¹ï¸Ü²°¸T¤î¹ï¸Ü²°¦¬¨ì WM_ENTERIDLE °T®§¡C |
DS_SETFONT | 40h | µ{¦¡¯à§â WM_SETFONT °T®§¶Ç°eµ¹¹ï¸Ü²°¤ºªº±±¨î¶µ¡AÅܧ󱱨ªº¦r§Î¡C¦ý¬O¦pªG¹ï¸Ü²°¨ã¦³ DS_SETFONT ·®æªº¸Ü¡A¹ï¸Ü²°ªºµøµ¡¨ç¦¡¤]¯à¦¬¨ì WM_SETFONT °T®§¡A¨Ï¹ï¸Ü²°¯à¦³¾÷·|§ïÅܱ±¨î¶µªº¤j¤p¡A¥HÅã¥Ü©Ò¦³¤å¦r¡C |
DS_SETFOREGROUND | 200h | «Ø¥ß¨ã¦³¦¹·®æªº¹ï¸Ü²°®É¡A¨t²Î·|©I¥s SetForegroundWindow¡A¦Ó¨Ï¹ï¸Ü²°Åã¥Ü¦b¿Ã¹õ³Ì¤W¼h¡A¦b»ÝnÅý¨Ï¥ÎªÌ±oª¾«n°T®§®É¡A¯S§O¦³¥Î¡C |
DS_SHELLFONT | 48h | ¬Û·í©ó DS_SETFONT | DS_FIXEDSYS¡A«ü¥Ü¹ï¸Ü²°¨Ï¥Î¨t²Î¦r§Î¡C |
DS_SYSMODAL | 2h | ¦¹·®æ¥u¦b 16 ¦ì¤¸ªº¨t²Î¨Ï¥Î¡A²{¤w¼o¤î¡C¦¹·®æ¬Û·í©ó WS_EX_TOPMOST ©µ¦ù·®æ¡C |
·®æ | ¼ÆÈ | »¡¡@¡@©ú |
WS_EX_ACCEPTFILES | 10h | ¨Ïµøµ¡¯à±µ¦¬·Æ¹«©ì©ñªºÀɮסC |
WS_EX_APPWINDOW | 40000h | ·íµøµ¡¥i¥H¦b¿Ã¹õ¤WÅã²{®É¡A¯à±j¨î¨Ïµøµ¡À£¦b¤u§@¦C¤W¡C |
WS_EX_CLIENTEDGE | 200h | ¨Ïµøµ¡¨ã¦³¥W³´ªºÃä®Ø¡A¦n¹³¦b¤TºûªÅ¶¡¤@¼Ë¡C |
WS_EX_COMPOSITED | 2000000h | ¨t²Îø»s¦¹µøµ¡ªº¤lµøµ¡®É¡A¥Î double-buffering ¤è¦¡¥Ñ¤U¦Ó¤Wø»s¡C |
WS_EX_CONTEXTHELP | 400h | ¦bµøµ¡ªº¼ÐÃD¦C¥]§t°Ý¸¹¡C·í¨Ï¥ÎªÌ«ö¤@¤U°Ý¸¹¡A´å¼Ð·|Åܬ°¦³«ü¼Ðªº°Ý¸¹¡C¦pªG¨Ï¥ÎªÌ¦A«ö¤@¤U¤lµøµ¡¡A¤lµøµ¡·|¦¬¨ì WM_HELP°T®§¡C |
WS_EX_CONTROLPARENT | 10000h | ¦pªG«ü©w¦¹©µ¦ù·®æ¡A¨Ï¥ÎªÌ¥i¥H«ö Tab Áä©Î¤è¦VÁä¨Ì§ÇÅý¦U¤lµøµ¡¾Ö¦³¿é¤JµJÂI¡C |
WS_EX_DLGMODALFRAME | 1h | ÂùÃä®Øªºµøµ¡¡C |
WS_EX_LAYERED | 80000h | «Ø¥ß Layered Windows¡A¥²¶·n«ü©w³oºØ©µ¦ù·®æ¡CLayered Windows ¤@¯ë¬O«ü¤£³W«h§Îª¬©Î¬O³z©úªºµøµ¡¡C |
WS_EX_LAYOUTRTL | 400000h | ¦è§B¨Ó¤å©Îªü©Ô§B¤åª©ªº Windows §@·~¨t²Î¡A¯à¨Ï¤ô¥®y¼ÐìÂI¦b³Ì¥kÃä¡A¶V¦V¥ªÃä¡A®y¼ÐȶV¤j¡C |
WS_EX_LEFT | 0 | µøµ¡¨ã¦³¥ªÃä¹ï¨äªº·®æ¡A³o¬O¤º©wÈ¡C |
WS_EX_LEFTSCROLLBAR | 4000h | ¦è§B¨Ó¤å©Îªü©Ô§B¤åª©ªº Windows §@·~¨t²Î¡A¯à¨Ï««ª½±²¶b©ñ¦b¤u§@°Ïªº¥ªÃä¡C³oÓ·®æ¡A¦b¨ä¥Lª©¥»µL§@¥Î¡C |
WS_EX_LTRREADING | 0 | µøµ¡¤ºªº¤å¦r¥Ñ¥ª¦V¥k¾\Ū¡A¦¹¬°¤º©wÈ¡C |
WS_EX_MDICHILD | 40h | «Ø¥ß MDI ¤lµøµ¡¡C |
WS_EX_NOACTIVATE | 8000000h | ¦¹·®æ·|¨Ïµøµ¡Åã¥Ü¦b¿Ã¹õ³Ì¤W¼h¡A¦ý«o¤£¨ã¿é¤JµJÂI¡A¥ç§Y¦¹µøµ¡µLªk§@¥Î¤¤¡An¨Ï³oºØµøµ¡§@¥Î¡A¥²¶·©I¥s SetActiveWindow ©Î SetForegroundWindow¡C³oºØµøµ¡¤]¤£·|¥X²{¦b¤u§@¦C¡A°£«D©M WS_EX_APPWINDOW ¦X¥Î¡C |
WS_EX_NOINHERITLAYOUT | 100000h | |
WS_EX_NOPARENTNOTIFY | 4h | ¨ã¦³¦¹©µ¦ù·®æªºµøµ¡«Ø¥ß©ÎÃö³¬®É¡A¤£·|¹ï¤÷µøµ¡µo¥X WM_PARENTNOTIFY °T®§¡C |
S_EX_OVERLAPPEDWINDOW | 300h | ¬Û·í©ó WS_EX_CLIENTEDGE »P WS_EX_WINDOWEDGE ªºµ²ªG¡C |
WS_EX_PALETTEWINDOW | 188h | ¬Û·í©ó WS_EX_WINDOWEDGE¡BWS_EX_TOOLWINDOW¡BWS_EX_TOPMOST ªºµ²ªG¡C |
WS_EX_RIGHT | 1000h | ³oÓ©µ¦ù·®æ¥u¦³¦b¦è§B¨Ó¤å¡Bªü©Ô§B¤å©Î¨ä¥L¤ä´©¾\Ū¤è¦Vªº Windows ª©¥»¾A¥Î¡A¥¦·|¨Ïµøµ¡ªº¤å¦r¥Ñ¥k¦V¥ª±Æ¦C¡C¨Ò¦p¨ã¦³ WS_EX_RIGHT ªº½s¿è®Ø¡BÀRºA±±¥ó¡A¤À§O©M ES_RIGHT¡BSS_RIGHT ·®æªº®ÄªG¤@¼Ë¡C |
WS_EX_RIGHTSCROLLBAR | 0 | ¦pªG¦³±²¶b¡A·|©ñ¦b¤u§@°Ïªº¥kÃä¡A³o¬O¤º©wªº©µ¦ù·®æ¡C |
WS_EX_RTLREADING | 2000h | ³oÓ©µ¦ù·®æ¥u¦³¦b¦è§B¨Ó¤å¡Bªü©Ô§B¤å©Î¨ä¥L¤ä´©¾\Ū¤è¦Vªº Windows ª©¥»¾A¥Î¡A¥¦·|¨Ïµøµ¡ªº¤å¦r¥Ñ¥k¦V¥ª±Æ¦C¡C |
WS_EX_STATICEDGE | 20000h | ¨Ïµøµ¡¨ã¦³¤TºûÃä®Ø¡A³q±`¥Î©ó¤£Åý¨Ï¥ÎªÌ¿é¤Jªº±±¨î¶µ¡A¨Ò¦pÀRºA±±¨î¶µ¡C |
WS_EX_TOOLWINDOW | 80h | WS_EX_TOOLWINDOW ¥i¥H«Ø¥ß¤@Ó¤u¨ãµøµ¡¡A³Q§@¬°¯B°Ê¤u¨ãÄæ¨Ï¥Î¡C¤u¨ãµøµ¡ªº¼ÐÃDÄæ¤ñ±`³W¼ÐÃDÄæµu¡A¨Ã¥B¨Ï¥Îªºµøµ¡¦rÅé§ó¤p¡C¦pªG¤u¨ãµøµ¡¤£¨ã WS_EX_APPWINDOW¡A¨º»ò¥¦´N¤£·|¥X²{¦b¤u§@¦CùØ¡F·í«ö¤U ALT TAB Áä«á¡A¤]¤£·|¥X²{¦b¤u§@¤Á´«µ{¦¡¦C¤¤¡C |
WS_EX_TOPMOST | 8h | ¥H³oºØ·®æ²£¥Íªºµøµ¡·|³Q¨t²Î©ñ¸m¦b³Ì¤W¼h¡A§Y¨Ïµøµ¡¨S¦³¬¡°Ê¡A¤]·|«O«ù¦b³Ì¤W¼h¡Cµ{¦¡¥i¥H©I¥s SetWindowPos ¨Ó¥[¤J©Î²¾°£¦¹ÄÝ©Ê¡C |
WS_EX_TRANSPARENT | 20h | ¥H³oºØ·®æ²£¥Íªºµøµ¡·|¬O³z©úªº¡C¤]´N¬O»¡¡A¥ô¦ó¦b³oºØµøµ¡¤Uªºµøµ¡¤£·|³Q¾B½ª¡C¥u¦³¦b©Ò¦³¦P¼h¯Åµøµ¡ ( sibling windows ) §ó·s¤§«á¡A¨ã¦³³oºØ·®æªºµøµ¡¤~·|¦¬¨ì WM_PAINT °T®§¡C |
WS_EX_WINDOWEDGE | 100h | ¨ã¦³¤Tºû¥Y°_Ãä®Øªºµøµ¡¡C |
µøµ¡Ãþ§O class name | ±±¨î¤¸¥ó control type |
¦WºÙ | ¤º©w·®æ |
STATIC | LTEXT | ¦V¥ª¹ï»ôªº¦r¦ê | SS_LEFT¡AWS_GROUP |
CTEXT | ¦V¤¤¹ï»ôªº¦r¦ê | SS_CENTER¡AWS_GROUP | |
RTEXT | ¦V¥k¹ï»ôªº¦r¦ê | SS_RIGHT¡AWS_GROUP | |
ICON | ¹Ï¥Ü±±¥ó | SS_ICON | |
BUTTON | PUSHBUTTON | ¤UÀ£¦¡«ö¶s | BS_PUSHBUTTON¡AWS_TABSTOP |
DEFPUSHBUTTON | ¤º©w¤UÀ£¦¡«ö¶s | BS_DEFPUSHBUTTON¡AWS_TABSTOP | |
CHECKBOX | ÀËÅç²° | BS_CHECKBOX¡AWS_TABSTOP | |
AUTOCHECKBOX | ¦Û°ÊÀËÅç²° | BS_AUTOCHECKBOX¡AWS_TABSTOP | |
RADIOBUTTON | ¶ê§Î«ö¶s | BS_RADIOBUTTON¡AWS_TABSTOP | |
AUTORADIOBUTTON | ¦Û°Ê¶ê§Î«ö¶s | BS_AUTORADIOBUTTON¡AWS_TABSTOP | |
GROUPBOX | ¸s²Õ | BS_GROUPBOX | |
STATE3 | ¤TºAÀËÅç²° | BS_3STATE¡AWS_TABSTOP | |
AUTO3STATE | ¦Û°Ê¤TºAÀËÅç²° | BS_AUTO3STATE¡AWS_TABSTOP | |
EDIT | EDITTEXT | ½s¿è®Ø | ES_LEFT¡AWS_BORDER¡AWS_TABSTOP |
COMBOBOX | COMBOBOX | ½Æ¦X®Ø | CBS_SIMPLE¡AWS_TABSTOP |
LISTBOX | LISTBOX | ²M³æ | LBS_NOTIFY¡AWS_BORDER |
SCROLLBAR | SCROLLBAR | ±²¶b | SBS_HORZ |