窗口框架

来源:互联网 发布:Mac PS瘦脸插件 编辑:程序博客网 时间:2024/05/21 10:53

窗口框架


1 . pe.asm

.386.model flat,stdcalloption casemap:noneinclude windows.incinclude user32.incincludelib user32.libinclude kernel32.incincludelib kernel32.libICO_MAIN equ 1000DLG_MAIN equ 1000IDC_INFO equ 1001IDM_MAIN equ 2000IDM_OPEN equ 2001IDM_EXIT equ 2002IDM_1 equ4000IDM_2 equ4001IDM_3 equ4002IDM_4 equ4003.datahInstancedd?hRichEditdd ?;富文本动态链接库句柄hWinMaindd?hWinEditdd?;文本控件名柄.constszDllEditdb "RichEd20.dll", 0szClassEditdb"RichEdit20A", 0szFontdb"宋体", 0szTestMsg db"test", 0.code;------------------------;初始化窗口程序;------------------------_initproclocal @stcf:CHARFORMATinvoke GetDlgItem,hWinMain, IDC_INFOmovhWinEdit, eax;为窗口设置图标invoke LoadIcon, hInstance, ICO_MAINinvoke SendMessage,hWinMain,WM_SETICON,ICON_BIG,eax;设置编辑控件invoke SendMessage, hWinMain, EM_SETTEXTMODE,TM_PLAINTEXT, 0invoke RtlZeroMemory,addr @stcf, sizeof  @stcfmov@stcf.cbSize, sizeof @stcfmov@stcf.yHeight,9*20mov @stcf.dwMask,CFM_FACE or CFM_SIZE or CFM_BOLDinvoke lstrcpy, addr @stcf.szFaceName, addr szFontinvoke SendMessage, hWinMain, EM_SETCHARFORMAT,0, addr @stcfinvoke SendMessage, hWinMain, EM_EXLIMITTEXT,0,-1ret_initendp_ProcDlgMainproc uses ebx edi esi hWnd,wMsg,wParam, lParammov eax, wMsg.if eax == WM_CLOSEinvoke EndDialog,hWnd,NULL.elseifeax == WM_INITDIALOGpush hWndpop hWinMaincall _init.elseif eax == WM_COMMANDmov eax, wParam.if eax == IDM_EXITinvoke EndDialog,hWnd,NULL.elseif eax == IDM_OPENinvoke MessageBox, hWnd, offset szTestMsg, NULL, MB_OK.elseif eax == IDM_1.elseif eax == IDM_2.elseif eax == IDM_3.endif.elsemov eax,FALSEret.endifmov eax,TRUEret_ProcDlgMain endpstart:invoke LoadLibrary,offset szDllEditmov hRichEdit, eaxinvoke GetModuleHandle, NULLmov hInstance,eaxinvoke DialogBoxParam,hInstance, DLG_MAIN, NULL, offset _ProcDlgMain, NULLinvoke FreeLibrary,hRichEditinvoke ExitProcess,NULLend start

2. pe.rc

#include <resource.h>#defineICO_MAIN1000#defineDLG_MAIN1000#defineIDC_INFO1001#defineIDM_MAIN2000#defineIDM_OPEN2001#defineIDM_EXIT2002#defineIDM_14000#defineIDM_24001#defineIDM_34002#defineIDM_44003ICO_MAINICON"main.ico"DLG_MAINDIALOG50,50,544,399STYLE DS_MODALFRAME |WS_POPUP| WS_VISIBLE | WS_CAPTION |WS_SYSMENUCAPTION "PE文件基本信息"MENU IDM_MAIN FONT 9, "宋体"BEGIN CONTROL "", IDC_INFO, "RichEdit20A", 196| ES_WANTRETURN | WS_CHILD  | WS_VISIBLE | WS_BORDER |WS_VSCROLL | WS_TABSTOP, 0, 0, 540, 396ENDIDM_MAIN menu discardableBEGINPOPUP"文件(&F)"BEGINmenuitem"打开文件(&O)...",IDM_OPENmenuitemseparatormenuitem"退出(&X)...",IDM_EXITENDPOPUP "查看"BEGINmenuitem"源文件",IDM_1menuitem"窗口透明度",IDM_2menuitemseparatormenuitem"大小",IDM_3menuitem"宽度",IDM_4ENDEND

3.

ml -c -coff pe.asm  生成pe.obj

rc -r pe.rc  生成rc.res

link -subsystem:windows pe.obj pe.RES   生成pe.exe



原创粉丝点击