📄 resedit.asm
字号:
title ResEdit - DLL Normal Window With (.rc)
comment '======================================================|'
comment '* ResEdit v1.0 *'
comment '* Copyright (r) Ewayne L. Wagner, All Rights Reserved.*'
comment '* Unless you can improve on the program and send me *'
comment '* the changes. yooper@kalamazoo.net *'
comment '======================================================|'
.586
.model flat, stdcall
option casemap: none ; Case sensitive
include L:\AsmEdit\include\windows.inc
include user32.inc
include gdi32.inc
include kernel32.inc
include comdlg32.inc
include comctl32.inc
include advapi32.inc
include ole32.inc
include oleaut32.inc
include L:\AsmEdit\include\DSPMACRO.asm
includelib user32.lib
includelib gdi32.lib
includelib kernel32.lib
includelib comdlg32.lib
includelib comctl32.lib
includelib advapi32.lib
includelib ole32.lib
includelib oleaut32.lib
include ResEdit.inc
WinMain PROTO :DWORD, :DWORD, :DWORD, :DWORD
TabCtlDlg PROTO :DWORD, :DWORD, :DWORD, :DWORD
ResourceDlg PROTO :DWORD, :DWORD, :DWORD, :DWORD
MenuDlg PROTO :DWORD, :DWORD, :DWORD, :DWORD
DialogDlg PROTO :DWORD, :DWORD, :DWORD, :DWORD
ExtractDlg PROTO :DWORD, :DWORD, :DWORD, :DWORD
BuildDlg PROTO :DWORD, :DWORD, :DWORD, :DWORD
SampleDlg PROTO :DWORD, :DWORD, :DWORD, :DWORD
RichEditProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
WorkProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
FillBuffer PROTO :DWORD, :DWORD, :BYTE, :DWORD
REditP PROTO :DWORD, :DWORD, :DWORD, :DWORD
ControlButtP PROTO :DWORD, :DWORD, :DWORD, :DWORD
SizeDataProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
StyleProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
OptionsProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
PosProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
ListBoxProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
ListPopProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
SizeProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
MultiProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
MouseMUD PROTO :DWORD, :DWORD, :DWORD, :DWORD
BaseAscii PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
AsciiBase PROTO :DWORD, :DWORD
ControlRect PROTO :DWORD, :DWORD, :DWORD
GetOffset PROTO :DWORD
GetSizes PROTO :DWORD
LoadGrabbers PROTO :DWORD
MoveGrabbers PROTO :DWORD, :DWORD
CreateControls PROTO :DWORD, :DWORD
CreateWin PROTO :DWORD, :DWORD, :DWORD
SaticProcR PROTO :DWORD, :DWORD, :DWORD, :DWORD
SampleDlgS PROTO :DWORD, :DWORD, :DWORD, :DWORD
GetDefines PROTO :DWORD, :DWORD, :DWORD
ReloadCtrl PROTO :DWORD
ProcessMRUFiles PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
GetRegPath PROTO :DWORD, :DWORD
ExtractRsrc PROTO :DWORD, :DWORD, :DWORD, :DWORD
;MoveSize PROTO :DWORD
TBSep MACRO hTool
mov tbb.iBitmap, 0
mov tbb.idCommand, 0
mov tbb.fsState, TBSTATE_ENABLED
mov tbb.fsStyle, TBSTYLE_SEP
INVOKE SendMessage, hTool, TB_ADDBUTTONS, 1, addr tbb
ENDM
TBButt MACRO hTool, bID, cID, Text
mov tbb.iBitmap, bID ; Button image number
mov tbb.idCommand, cID ; Command ID number
mov tbb.fsState, TBSTATE_ENABLED
mov tbb.fsStyle, TBSTYLE_BUTTON
mov tbb.dwData, 0
mov tbb.iString, Text
INVOKE SendMessage, hTool, TB_ADDBUTTONS, 1, addr tbb
ENDM
MOVmd MACRO Var1, Var2
push Var2
pop Var1
ENDM
.const
EditID equ 1
IDM_CUT equ 1005
IDM_COPY equ 1006
IDM_PASTE equ 1007
IDM_DEL equ 1008
IDM_SELALL equ 1009
IDB_TOOL equ 7002
IDB_TOOLS equ 7003
.data
AppName db 'Resource Editor',0
ClassName db 'Resource Editor',0
WorkClass db 'Work Window',0
SizeClassV db 'SizeClassV',0
SizeClassH db 'SizeClassH',0
MultiClass db 'MultiClass',0
RichEdDLL db 'RICHED20.DLL',0
GroupClass db 'GroupClass',0
FormClass db 'Form Builder',0
StaticClass db 'static',0
ButtClass db 'button',0
EditClass db 'edit',0
RichEdit db 'RichEdit20A',0
ComboClass db 'combobox',0
ListboxClass db 'listbox',0
TreeClass db 'SysTreeView32',0
ListViewClass db 'SysListView32',0
ToolClass db 'ToolbarWindow32',0
StatClass db 'msctls_statusbar32',0
ScrollHClass db 'SCROLLBAR',0
ScrollVClass db 'SCROLLBAR',0
ProgressClass db 'msctls_progress32',0
TrackbarClass db 'msctls_trackbar32',0
UpDownClass db 'msctls_updown32',0
TabCtrlClass db 'SysTabControl32',0
SysMonthClass db 'SysMonthCal32',0
SysPickClass db 'SysDateTimePick32',0
BitmapClass db 'static',0
IconClass db 'static',0
IconAniClass db 'static',0
AnimateClass db 'SysAnimate32',0
IPAddressClass db 'SysIPAddress32',0
HotkeyClass db 'msctls_hotkey32',0
CustClass db 'CustClass',0
RichEdit44 db 'RichEdit44',0
DummyClass db 'DummyClass',0
ClassArray dd FormClass,StaticClass,ButtClass,ButtClass,ButtClass,ButtClass,EditClass,RichEdit,
ComboClass,ListboxClass,TreeClass,ListViewClass,ToolClass,StatClass,
ScrollHClass,ScrollVClass,ProgressClass,TrackbarClass,UpDownClass,TabCtrlClass,
SysMonthClass,SysPickClass,BitmapClass,IconClass,IconAniClass,AnimateClass,
IPAddressClass,HotkeyClass,ButtClass,RichEdit44,DummyClass
MenuName db 'MainMenu',0
PopupMenu db 'PopupMenu',0
ResourceMenu db 'ResourceMenu',0
FileMenu db 'FileMenu',0
FontName db 'Courier New',0
FontMS db 'MS Sans Serif',0 ;'Arial',0
FontSYS db 'System',0
FontMSD db '8, "MS Sans Serif"',0
szGlobe db 'globe.ani',0
szAnimateAvi db 'globe.avi',0
szRedit db 'ResEdit',0
szREGSZ db 'REG_SZ',0
szDlgD db 'DefDlg',0
szStaD db 'DefSta',0
szGrpD db 'DefGrp',0
szRadD db 'DefRad',0
szChkD db 'DefChk',0
szButD db 'DefBut',0
szEdiD db 'DefEdi',0
szRedD db 'DefRed',0
szCobD db 'DefCob',0
szLibD db 'DefLib',0
szTrvD db 'DefTrv',0
szLivD db 'DefLiv',0
szGridOn db 'Show Grid',0
szGrid db 'Size Grid',0
szSnapOn db 'Snap To',0
szResL db 'Last Resource',0
szError1 db 'The RICHED20.DLL was not found!',0
szError2 db 'There is a mismatch between the numbers',0dh,0ah
db ' of BEGIN and END statements',0
szError3 db 'The MAXIMUM number of controls has been reached',0
szError5 db 'The above dialog name already exists.',0dh,0ah
db ' Do you wish to replace it?',0
szSample db '\SampleRC.txt',0
szStyles db '\Res\Styles.sty',0
szWS db 'WS_OVERLAPPED',0
szDS db 'DS_ABSALIGN',0
szDivider db ' **** Control Styles ****',0
ddDlg dd 0h,0h,0h,0h,0h,0h,0h,0h,10C80000h,00000080h
ddSta dd 100h,0h,0h,0h,0h,0h,0h,0h,50000000h,00000000h
ddGrp dd 7h,0h,0h,0h,0h,0h,0h,0h,50000000h,00000000h
ddRad dd 9h,0h,0h,0h,0h,0h,0h,0h,50010000h,00000000h
ddChk dd 3h,0h,0h,0h,0h,0h,0h,0h,50010000h,00000000h
ddBut dd 0h,0h,0h,0h,0h,0h,0h,0h,50010000h,00000000h
ddEdi dd 0h,0h,0h,0h,0h,0h,0h,0h,50010000h,00000000h
ddRed dd 4h,0h,0h,0h,0h,0h,0h,0h,50310000h,00000200h
ddCob dd 3h,100h,200h,400h,0h,0h,0h,0h,50200000h,00000000h
ddLib dd 1h,40h,100h,0h,0h,0h,0h,0h,50200000h,00000000h
ddTrv dd 1h,4h,20h,0h,0h,0h,0h,0h,50000000h,00000200h
ddLiv dd 1h,8h,10h,0h,0h,0h,0h,0h,50000000h,00000200h
;Defs dd ddDlg,ddSta,ddGrp,ddRad,ddChk,ddBut,ddEdi,ddRed,ddCob,ddLib,ddTrv,ddLiv
ddDlgD dd 10 dup(?)
ddStaD dd 10 dup(?)
ddGrpD dd 10 dup(?)
ddRadD dd 10 dup(?)
ddChkD dd 10 dup(?)
ddButD dd 10 dup(?)
ddEdiD dd 10 dup(?)
ddRedD dd 10 dup(?)
ddCobD dd 10 dup(?)
ddLibD dd 10 dup(?)
ddTrvD dd 10 dup(?)
ddLivD dd 10 dup(?)
;DefsD dd ddDlgD,ddStaD,ddGrpD,ddRadD,ddChkD,ddButD,ddEdiD,ddRedD,ddCobD,ddLibD,ddTrvD,ddLivD
szOpenTitle db 'Open A Resource File',0
szSaveTitle db 'Save File As',0
szFilter db 'RC Files',0,'*.rc',0,0
szRC db 'xxxx.rc',0
szDlg db 'IDD_DLG',0 ; 7501
szSta db 'IDC_STATIC',0 ; 7502 static
szGrp db 'IDC_GRP',0 ; 7503 button
szRad db 'IDC_RAD',0 ; 7504 button
szChk db 'IDC_CHK',0 ; 7505 button
szBut db 'IDC_BUTT',0 ; 7506 button
szEdit db 'IDC_EDIT',0 ; 7507 edit
szREdit db 'IDC_REDIT',0 ; 7508 RichEdit20A
szCombo db 'IDC_COMBO',0 ; 7509 combobox
szListB db 'IDC_LISTBOX',0 ; 7510 listbox
szTreeV db 'IDC_TREE',0 ; 7511 SysTreeView32
szListV db 'IDC_LISTVIEW',0 ; 7512 SysListView32
szTool db 'IDC_TOOL',0
szStatus db 'IDC_STATUS',0
szScrollH db 'IDC_SCROLLH',0
szScrollV db 'IDC_SCROLLV',0
szProgress db 'IDC_PROGRESS',0
szTrack db 'IDC_TRACKBAR',0
szUpDown db 'IDC_UPDOWN',0
szTab db 'IDC_TAB',0
szMonth db 'IDC_MONTH',0
szPick db 'IDC_PICK',0
szBitmap db 'IDC_BITMAP',0
szIcon db 'IDC_ICON',0
szIconAni db 'IDC_ICONANI',0
szAnimate db 'IDC_ANIMATE',0
szIPAdress db 'IDC_IPADDR',0
szHotKey db 'IDC_HOTKEY',0
szCustom db 'IDC_CUSTOM',0
szGrp4 db 'IDC_GRP4',0
TextArray dd szDlg,szSta,szGrp,szRad,szChk,szBut,szEdit,szREdit,
szCombo,szListB,szTreeV,szListV,szTool,szStatus,szScrollH,
szScrollV,szProgress,szTrack,szUpDown,szTab,szMonth,szPick,
szBitmap,szIcon,szIconAni,szAnimate,szIPAdress,szHotKey,szCustom,szGrp4
SizeArray dd 6,3,6,6,6,5,5,4,4,2,5,1,5,3,2,2,2,1,3,6,4,5,2,5
RStartID dd 200
MStartID dd 300
szComID0 db 'IDC_STATIC',0
szComID1 db 'IDOK',0
szComID2 db 'IDCANCEL',0
szComID3 db 'IDABORT',0
szComID4 db 'IDRETRY',0
szComID5 db 'IDIGNORE',0
szComID6 db 'IDYES',0
szComID7 db 'IDNO',0
szComID8 db 'IDCLOSE',0
szComID9 db 'IDHELP',0
ComIDArray dd szComID0,szComID1,szComID2,szComID3,szComID4,
szComID5,szComID6,szComID7,szComID8,szComID9
szMoveGrp db 'Move the groupbox',0
szKeepSel db 'Keep toolbar selection',0
szUseID db 'Use (ID) for (Name)',0
szNoMove db 'Lock position - size',0
szOption db 'Options',0
szAlign db 'Align/Size',0
szSave db 'Save Dlg',0
szSelect db 'Select A Dialog If Available',0
TabTitle1 db 'Resource',0
TabTitle2 db 'Menu',0
TabTitle3 db 'Dialog',0
;TabTitle4 db 'Load a .rc file',0
TabTitle4 db 'Load a resource',0
TabTitle5 db 'Build',0
TabTitle6 db 'Sample',0
szCRLF db 0dh,0ah,0
szCR db 0dh,0
szNULL db 0
szSpace db ' ',0
szx db '0x',0
szQuote db '"',0
szComma db ',',0
szUnder db '_',0
szAstr db '*',0
szBackS db '\Res\',0
szSlashB db '\t',0
szVK db 'VK_',0
szCS db ', ',0
szEndP db '*.*',0
szEndR db '\*.rc',0
szALL db 'All Files',0,'*.*',0,0
szResB db 'BITMAP DISCARDABLE ',0
szResI db 'ICON DISCARDABLE ',0
szResC db 'CURSOR DISCARDABLE ',0
szResW db 'WAVE DISCARDABLE ',0
szResM db 'MIDI DISCARDABLE ',0
szTxtB db 'IDB_',0
szTxtI db 'IDI_',0
szTxtC db 'IDC_',0
szTxtW db 'IDW_',0
szTxtM db 'IDM_',0
TxtArray dd szTxtB,szTxtI,szTxtC,szTxtW,szTxtM
szExtB db '.bmp',0
szExtI db '.ico',0
szExtC db '.cur',0
szExtW db '.wav',0
szExtM db '.mid',0
ExtArray dd szExtB,szExtI,szExtC,szExtW,szExtM
szFilterR db 'Resource Files',0,'*.*',0,0
szMenuN db ' MENU DISCARDABLE',0dh,0ah ;,0dh,0ah
db 'BEGIN',0dh,0ah,0
szPopup db 'POPUP ',0
szBegin db 'BEGIN',0dh,0ah,0
szMenuI db 'MENUITEM ',0
szSep db 'MENUITEM SEPARATOR',0dh,0ah,0
szEnd db 'END',0dh,0ah,0
szFindB db 'BEGIN',0
szFindE db 'END',0
szFixit db 'BEGIN',0dh,0ah
db 'END',0dh,0ah,0
szAccel db 'IDR_ACCEL ACCELERATORS',0dh,0ah
db 'BEGIN',0dh,0ah,0
szVKey db 'VIRTKEY',0
szControl db ', CONTROL',0
szResource db '#include <RESOURCE.H> ;May need to add path',0dh,0ah,0dh,0ah,0
szStatic db 0dh,0ah,'#define IDC_STATIC -1',0dh,0ah,0dh,0ah,0
szEquHeader db '** Copy and Paste the following equates to your application program **',0dh,0ah,0
szEqu db 'equ ',0
szDefine db '#define ',0
szDlgEX db ' DIALOGEX LOADONCALL MOVEABLE DISCARDABLE ',0
szCont db ' CONTROL ',0
szCapt db 'CAPTION ',0
szFont db 'FONT ',0
szSty db 'STYLE ',0
szEXSty db 'EXSTYLE ',0
szClass db 'CLASS ',0
szDIALOG db 'DIALOG',0
XNum db 5 dup(?)
szX db ' x ',0
YNum db 5 dup(?)
mmsg db ' X: '
mmsgx db 4 dup(' ')
db ' Y: '
mmsgy db 4 dup(' '),0
szDlgNum db 2 dup(' ')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -