汇编语言课程设计win32编写记事本

上传人:s9****2 文档编号:552677841 上传时间:2023-08-25 格式:DOCX 页数:22 大小:54.85KB
返回 下载 相关 举报
汇编语言课程设计win32编写记事本_第1页
第1页 / 共22页
汇编语言课程设计win32编写记事本_第2页
第2页 / 共22页
汇编语言课程设计win32编写记事本_第3页
第3页 / 共22页
汇编语言课程设计win32编写记事本_第4页
第4页 / 共22页
汇编语言课程设计win32编写记事本_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《汇编语言课程设计win32编写记事本》由会员分享,可在线阅读,更多相关《汇编语言课程设计win32编写记事本(22页珍藏版)》请在金锄头文库上搜索。

1、华北科技学院课程设计说明书课程名称:汇编语言班级: 计算机B08-1姓名:_李鹏飞_ 学号:4231设计题目:Win32编写记事本设计时间:_ 6月23日-至指导教师:杜杏菁_评 语:评阅成绩: 评阅教师:一、课程设计目的 进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计 的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构 和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。二、课程设计要求 1要求编写并调试通过一个小型软件,实现对软件或硬件的操作。2遵循模块化、结构化的程序设计方法。3. 要求程序必须正确。4. 程序简明易懂,多运用输入输出

2、提示,出错信息及必要的注释。5. 要求程序结构合理,语句使用得当。6. 适当追求编程技巧和程序运行效率。三、课程设计题目:wi n32编写记事本四、课题分析WINDOW 记事本的编写,要求能实现基本菜单框架并打开窗口,有能力的同 学可以编写进行数据录入并保存的代码五、流程图:六、程序源代码:.386.model flat,stdcall option casemap:none include include includelib include includelib include includelib include includelib include includelibICO_MAIN

3、EQU1000h;图标IDM_MAINEQU 2000h ;菜单IDA_MAINEQU2000h;加速键IDM_NEWEQU2101h;新建IDM_OPENEQU2102h;打开IDM_SAVEEQU2103h;保存IDM_SAVEASEQU2104h;另存为IDM_EXITEQU2105h;退出IDM_UNDOEQU2201h;撤销IDM_CUTEQU2203h;剪切IDM_COPYEQU2204h;复制IDM_PASTEEQU2205h;粘贴IDM_DELETEEQU2206h;删除IDM_FINDEQU2207h;查找IDM_REPLACEEQU 220Ah;替换IDM_SELECTAL

4、LEQU 220Bh;全选IDM_FONTEQU2301h;字体IDM_STATUSBAREQU 2401h ;状态栏IDM_HELPEQU2501h;帮助主题IDM_ABOUTEQU2502h;关于IDM_MENUHELPEQU 2601h;菜单信息.datahInstance ddhWinMainddhMenuddhWinStatusddhWinEditddhFileddhFindDialogddhRichEditdddwFontColorddidFindMessageddstFindFINDREPLACEszFindTextdb100dupszReplaceTextdb100 dupsz

5、FileNamedbMAX_PATHdupstLogFontLOGFONTdwOptiondd.dataF_STATUSBARequ00000001hdllEditdb ,0errTitledb错误,0()()()noRichEdit className captionMain classEdit fontFace modify filter,0,*.*,0,0 defExt titleFormat errCreateFile errOpenFile notFound noName timeFormat charsFormat lineFormat colFormat helpTitle he

6、lpText aboutTitle aboutTextdbdbdb db db dbdbdb db dbdb db db db db db无法找到 TextEditor,0 db 文本编辑器,0 RichEdit20A,0 Fixedsys,0 你已经改动过啦,要不要存一下,0文本文件(*.txt),O,*.txt,O,所有文件txt,0db %s -我的记事本, 0 db 咦!出现问题了 ! ,0db 咦!怎么打不开!,0不给力啊,找不到!,0 还没起名字,0%02d:%02d:%02d,0 db 字节数:d,0行:%d,0列:%d,0帮助,0Sorry!无法提供任何帮助,0 关于记事本,0

7、我的记事本,0ah,0dh,作者:李鹏飞,0ah,0dh,2010年07月01 日,0ah,0dh,0 dwStatusWidthdd100,200,300,400,-1dwMenuHelp dd 0,IDM_MENUHELP,0,0FINDMSGSTRING db commdlg_FindReplace,0.code_CheckModifyState PROCinvoke SendMessage,hWinEdit,EM_GETMODIFY,0,0 ;获取控件内容是否改变的信息.if eax != 0invoke MessageBox,hWinMain,addr modify,addr cap

8、tionMain, MB_YESNOCANCEL or MB_ICONQUESTION.if eax = IDYEScall _SaveFile;有待改动.elseif eax = IDCANCELmov eax,FALSEret.endif.endifmov eax,TRUEret_CheckModifyState ENDP;Richedit的流出操作_StreamProcOutPROCusesebxediesi_dwCookie,lpBuffer,NumBytes,pBytes invoke WriteFile,hFile,lpBuffer,NumBytes,pBytes,0 xor ea

9、x,1;如果ReadFile或WriteFile返回1(成功),则最终eax返回0,说明操作成功ret_StreamProcOut ENDP;Richedit的流入操作_StreamProcIn PROC uses ebx edi esi _dwCookie,lpBuffer,NumBytes,pBytes invoke ReadFile,hFile,lpBuffer,NumBytes,pBytes,0xor eax,1;如果ReadFile或WriteFile返回1(成功),则最终eax返回0,说明操作成功_StreamProcIn ENDP;设置字体和字体的颜色_SetFont PROC

10、_lpszFont,_dwFontSize,_dwColorlocal stCf:CHARFORMATinvoke RtlZeroMemory,addr stCf,sizeof stCf;开始填充stCf结构mov ,sizeof stCfmov ,CFM_SIZE or CFM_FACE or CFM_BOLD or CFM_COLOR 字段掩码,用来指定结构中哪些字段是有效的push_dwFontSizepoppush_dwColorpopmov,0invokelstrcpy,addr ,_lpszFontinvokeSendMessage,hWinEdit,EM_SETTEXTMODE,

11、1,0;设置工作模式invoke SendMessage,hWinEdit,EM_SETCHARFORMAT,SCF_ALL,addrstCf ;为控件中的全部文本设置指定的格式ret_SetFont ENDP;查找文字_FindText PROClocal stFindText:FINDTEXTEX ;设置查找区域invoke SendMessage,hWinEdit,EM_EXGETSEL,0,addr .if & FR_DOWN;向下查找push pop ;将这个选择区域的结束位置用做下一次查找的起始点.endifmov ;一直查找到全部文本 的最后;设置查找选项mov ,off set

12、 szFindTextmov ecx,andecx,FR_MATCHCASE or FR_DOWN or FR_WHOLEWORD;查找并把光标设置到找到的文本上invoke SendMessage,hWinEdit,EM_FINDTEXTEX,ecx,addr stFindText ;ecx中存储的是搜索选项.ifeax = -1mov ecx,hWinMain.if hFindDialogmov ecx,hFindDialog.endifinvoke MessageBox,ecx,addr notFound,NULL,MB_OK or MB_ICONINFORMATIONret.endif

13、;找到文本以后,文本的位置在FINDTEXTEX结构的chrgText字段中返 回,chrgTexT字段是一个CHARRANGE结构,直接在EM_EXSETSEL消息中使用它将选 择区域设置到找到的文字上invoke SendMessage,hWinEdit,EM_EXSETSEL,0,addr invoke SendMessage,hWinEdit,EM_SCROLLCARET,NULL,NULL;卷动文字,以便找到的文本能够出现在用户的视野中ret_FindText ENDP;保存文件,如果没有打开或创建文件则另存为_SaveFile PROClocal stES:EDITSTREAM.i

14、f! hFilecall _SaveAs.if! eaxret.endif.endifmov,FALSE;在Richedit的流操作中写文件mov,NULLmov , offset _StreamProcOut;回调函数invoke SendMessage,hWinEdit,EM_STREAMOUT,SF_TEXT,addr stES;流出操作,文本格式是简单的文本格式invoke SendMessage,hWinEdit,EM_SETMODIFY,FALSE,0;设置修改状态moveax,TRUE_SaveFile ENDP;另存为_SaveAs PROClocal stOF:OPENFILENAMElocal stEs:EDITSTREAMinvoke RtlZeroMemory,addr stOF

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号