ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:38.50KB ,
资源ID:4810348      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4810348.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言课程设计win32编写记事本讲课稿.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言课程设计win32编写记事本讲课稿.docx

1、汇编语言课程设计win32编写记事本讲课稿汇编语言课程设计win32编写记事本华 北 科 技 学 院课程设计说明书课程名称: 汇编语言 班级: 计算机B08-1 姓名:_李鹏飞_ _学号:_ 200807014231 _设计题目:_ win32编写记事本 _设计时间: _ 6月23日 _至_ 7月1日 _指导教师:_ 杜杏菁_ _评 语:_评阅成绩: 评阅教师:一、课程设计目的进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。二、课程设计要求

2、1要求编写并调试通过一个小型软件,实现对软件或硬件的操作。2遵循模块化、结构化的程序设计方法。3.要求程序必须正确。4.程序简明易懂,多运用输入输出提示,出错信息及必要的注释。5.要求程序结构合理,语句使用得当。6.适当追求编程技巧和程序运行效率。三、课程设计题目:win32编写记事本四、课题分析WINDOW 记事本的编写,要求能实现基本菜单框架并打开窗口,有能力的同学可以编写进行数据录入并保存的代码开 始加载头文件加载数据段编译代码设计窗体编译生成文件结 束五、流程图:六、程序源代码:.386.model flat,stdcalloption casemap:noneinclude wind

3、ows.incinclude user32.incincludelib user32.libinclude kernel32.incincludelib kernel32.libinclude shell32.incincludelib shell32.libinclude comctl32.incincludelib comctl32.libinclude comdlg32.incincludelib comdlg32.libICO_MAIN EQU 1000h ;图标IDM_MAIN EQU 2000h ;菜单IDA_MAIN EQU 2000h ;加速键IDM_NEW EQU 2101h

4、 ;新建IDM_OPEN EQU 2102h ;打开IDM_SAVE EQU 2103h ;保存IDM_SAVEAS EQU 2104h ;另存为IDM_EXIT EQU 2105h ;退出IDM_UNDO EQU 2201h ;撤销IDM_CUT EQU 2203h ;剪切IDM_COPY EQU 2204h ;复制IDM_PASTE EQU 2205h ;粘贴IDM_DELETE EQU 2206h ;删除IDM_FIND EQU 2207h ;查找IDM_REPLACE EQU 220Ah ;替换IDM_SELECTALL EQU 220Bh ;全选IDM_FONT EQU 2301h

5、;字体IDM_STATUSBAR EQU 2401h ;状态栏IDM_HELP EQU 2501h ;帮助主题IDM_ABOUT EQU 2502h ;关于IDM_MENUHELP EQU 2601h ;菜单信息.data?hInstance dd ?hWinMain dd ?hMenu dd ?hWinStatus dd ?hWinEdit dd ?hFile dd ?hFindDialog dd ?hRichEdit dd ?dwFontColor dd ?idFindMessage dd ?stFind FINDREPLACE szFindText db 100 dup (?)szRep

6、laceText db 100 dup (?)szFileName db MAX_PATH dup (?)stLogFont LOGFONT dwOption dd ?.dataF_STATUSBAR equ 00000001hdllEdit db RichEd20.dll,0errTitle db 错误,0noRichEdit db 无法找到RichEd20.dllclassName db TextEditor,0captionMain db 文本编辑器,0classEdit db RichEdit20A,0fontFace db Fixedsys,0modify db 你已经改动过啦,要不

7、要存一下?,0filter db 文本文件(*.txt),0,*.txt,0,所有文件,0,*.*,0,0defExt db txt,0titleFormat db %s - 我的记事本,0errCreateFile db 咦!出现问题了!,0errOpenFile db 咦!怎么打不开!,0notFound db 不给力啊,找不到!,0noName db 还没起名字,0timeFormat db %02d:%02d:%02d,0charsFormat db 字节数:%d,0lineFormat db 行:%d,0colFormat db 列:%d,0helpTitle db 帮助,0help

8、Text db Sorry!无法提供任何帮助,0aboutTitle db 关于 记事本,0aboutText db 我的记事本,0ah,0dh,作者:李鹏飞,0ah,0dh,2010年07月01日,0ah,0dh,0dwStatusWidth dd 100,200,300,400,-1dwMenuHelp dd 0,IDM_MENUHELP,0,0FINDMSGSTRING db commdlg_FindReplace,0.code;=_CheckModifyState PROC invoke SendMessage,hWinEdit,EM_GETMODIFY,0,0 ;获取控件内容是否改变

9、的信息 .if eax != 0 invoke MessageBox,hWinMain,addr modify,addr captionMain, MB_YESNOCANCEL or MB_ICONQUESTION .if eax = IDYES call _SaveFile ;有待改动 .elseif eax = IDCANCEL mov eax,FALSE ret .endif .endif mov eax,TRUE ret_CheckModifyState ENDP;=;Richedit的流出操作_StreamProcOut PROC uses ebx edi esi _dwCookie

10、,lpBuffer,NumBytes,pBytes invoke WriteFile,hFile,lpBuffer,NumBytes,pBytes,0 xor eax,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,0 xor eax,1

11、;如果ReadFile或WriteFile返回1(成功),则最终eax返回0,说明操作成功 ret_StreamProcIn ENDP;=;设置字体和字体的颜色_SetFont PROC _lpszFont,_dwFontSize,_dwColor local stCf:CHARFORMAT invoke RtlZeroMemory,addr stCf,sizeof stCf ;开始填充stCf结构 mov stCf.cbSize,sizeof stCf mov stCf.dwMask,CFM_SIZE or CFM_FACE or CFM_BOLD or CFM_COLOR ;字段掩码,用来

12、指定结构中哪些字段是有效的 push _dwFontSize pop stCf.yHeight push _dwColor pop stCf.crTextColor mov stCf.dwEffects,0 invoke lstrcpy,addr stCf.szFaceName,_lpszFont invoke SendMessage,hWinEdit,EM_SETTEXTMODE,1,0 ;设置工作模式 invoke SendMessage,hWinEdit,EM_SETCHARFORMAT,SCF_ALL,addr stCf ;为控件中的全部文本设置指定的格式 ret_SetFont EN

13、DP;=;查找文字_FindText PROC local stFindText:FINDTEXTEX;设置查找区域 invoke SendMessage,hWinEdit,EM_EXGETSEL,0,addr stFindText.chrg .if stFind.Flags & FR_DOWN ;向下查找 push stFindText.chrg.cpMax pop stFindText.chrg.cpMin ;将这个选择区域的结束位置用做下一次查找的起始点 .endif mov stFindText.chrg.cpMax,-1 ;一直查找到全部文本的最后;设置查找选项 mov stFind

14、Text.lpstrText,offset szFindText mov ecx,stFind.Flags and ecx,FR_MATCHCASE or FR_DOWN or FR_WHOLEWORD ;查找并把光标设置到找到的文本上 invoke SendMessage,hWinEdit,EM_FINDTEXTEX,ecx,addr stFindText ;ecx中存储的是搜索选项 .if eax = -1 mov ecx,hWinMain .if hFindDialog mov ecx,hFindDialog .endif invoke MessageBox,ecx,addr notFo

15、und,NULL,MB_OK or MB_ICONINFORMATION ret .endif ;找到文本以后,文本的位置在FINDTEXTEX结构的chrgText字段中返回,chrgText字段是一个CHARRANGE结构,直接在EM_EXSETSEL消息中使用它将选择区域设置到找到的文字上 invoke SendMessage,hWinEdit,EM_EXSETSEL,0,addr stFindText.chrgText invoke SendMessage,hWinEdit,EM_SCROLLCARET,NULL,NULL ;卷动文字,以便找到的文本能够出现在用户的视野中 ret_Fi

16、ndText ENDP;=;保存文件,如果没有打开或创建文件则另存为_SaveFile PROC local stES:EDITSTREAM .if ! hFile call _SaveAs .if ! eax ret .endif .endif mov stES.dwCookie,FALSE ;在Richedit的流操作中写文件 mov stES.dwError,NULL mov stES.pfnCallback,offset _StreamProcOut ;回调函数 invoke SendMessage,hWinEdit,EM_STREAMOUT,SF_TEXT,addr stES ;流出

17、操作,文本格式是简单的文本格式 invoke SendMessage,hWinEdit,EM_SETMODIFY,FALSE,0 ;设置修改状态 mov eax,TRUE ret _SaveFile ENDP;=;另存为_SaveAs PROC local stOF:OPENFILENAME local stEs:EDITSTREAM invoke RtlZeroMemory,addr stOF,sizeof stOF;显示保存文件对话框 ;填充stOF结构 mov stOF.lStructSize,sizeof stOF push hWinMain pop stOF.hwndOwner ;所

18、属窗口 mov stOF.lpstrFilter,offset filter ;指定文件名筛选字符串 mov stOF.lpstrFile,offset szFileName mov stOF.nMaxFile,MAX_PATH ;指定lpstrFile参数指向的缓冲区的长度,260 mov stOF.Flags,OFN_PATHMUSTEXIST ;路径必须存在 mov stOF.lpstrDefExt,offset defExt ;默认扩展名 mov stOF.lpstrTitle,NULL ;标题为“另存为” invoke GetSaveFileName,addr stOF .if ea

19、x ;创建新文件 invoke CreateFile,addr szFileName,GENERIC_READ or GENERIC_WRITE, ;存取方式:为读写 FILE_SHARE_READ, ;共享属性:允许其他进程同时以读方式打开文件 0, ;安全属性:无法被继承 CREATE_ALWAYS, ;创建新文件,如果文件已经存在则清除原文件 FILE_ATTRIBUTE_NORMAL, ;文件属性:普通文件 0 ;文件模板句柄 .if eax != INVALID_HANDLE_VALUE push eax .if hFile ;有打开的文件 invoke CloseHandle,hF

20、ile .endif pop eax ;保存文件 mov hFile,eax ;文件句柄 call _SaveFile call _SetCaption call _SetStatus mov eax,TRUE ret .else invoke MessageBox,hWinMain,addr errCreateFile,NULL,MB_OK or MB_ICONERROR .endif .endif mov eax,FALSE ret_SaveAs ENDP;=;打开及输入文件_OpenFile PROC local stOF:OPENFILENAME local stES:EDITSTRE

21、AM invoke RtlZeroMemory,addr stOF,sizeof stOF;显示“打开文件”对话框 mov stOF.lStructSize,sizeof stOF push hWinMain pop stOF.hwndOwner mov stOF.lpstrFilter,offset filter mov stOF.lpstrFile,offset szFileName mov stOF.nMaxFile,MAX_PATH mov stOF.Flags,OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST ;文件必须存在 invoke GetOpenF

22、ileName,addr stOF .if eax ;创建文件 invoke CreateFile,addr szFileName,GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0 ;打开存在的文件,当文件不存在时函数会返回失败 .if eax = INVALID_HANDLE_VALUE invoke MessageBox,hWinMain,addr errOpenFile,NULL,MB_OK or MB_ICONSTOP ret .endif push eax .i

23、f hFile invoke CloseHandle,hFile .endif pop eax mov hFile,eax ;读入文件 mov stES.dwCookie,TRUE ;在Richedit的流操作中读文件 mov stES.dwError,NULL mov stES.pfnCallback,offset _StreamProcIn invoke SendMessage,hWinEdit,EM_STREAMIN,SF_TEXT,addr stES ;流入操作,文本格式是简单的文本格式 invoke SendMessage,hWinEdit,EM_SETMODIFY,FALSE,0

24、;设置修改状态 call _SetCaption call _SetStatus .endif ret_OpenFile ENDP;=;选择字体_ChooseFont PROC local stCF:CHOOSEFONT invoke RtlZeroMemory,addr stCF,sizeof stCF mov stCF.lStructSize,sizeof stCF push hWinMain pop stCF.hwndOwner mov stCF.lpLogFont,offset stLogFont ;指定字体的名称和属性 push dwFontColor pop stCF.rgbColors mov stCF.Flags,CF_SCREENFONTS or CF_INITTOLOGFONTSTRUCT or CF_EFFECTS ;字体列表中只显示屏幕字体,对话框中显示“效果”复选框 invoke Cho

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1