匯編語(yǔ)言課程設(shè)計(jì)win32編寫記事本_第1頁(yè)
匯編語(yǔ)言課程設(shè)計(jì)win32編寫記事本_第2頁(yè)
匯編語(yǔ)言課程設(shè)計(jì)win32編寫記事本_第3頁(yè)
匯編語(yǔ)言課程設(shè)計(jì)win32編寫記事本_第4頁(yè)
匯編語(yǔ)言課程設(shè)計(jì)win32編寫記事本_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

華北科技學(xué)院課程設(shè)計(jì)說(shuō)明書課程名稱:匯編語(yǔ)言班級(jí):計(jì)算機(jī)B08-1姓名:_李鵬飛___學(xué)號(hào):__4231__設(shè)計(jì)題目:___win32編寫記事本___設(shè)計(jì)時(shí)間:_6月23日_至_7月1日__指導(dǎo)教師:_____杜杏菁_________________評(píng) 語(yǔ):_____________________________________________________________________________________________________________________________________________________________________________________________________評(píng)閱成績(jī):__ __評(píng)閱教師:_____一、課程設(shè)計(jì)目的進(jìn)行程序設(shè)計(jì)方法和技能的基本訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計(jì)的基本知識(shí)和基本方法,通過(guò)實(shí)際動(dòng)手能力的培養(yǎng),進(jìn)一步熟悉匯編語(yǔ)言的結(jié)構(gòu)和使用方法,達(dá)到能獨(dú)立閱讀、編制和調(diào)試一定規(guī)模的匯編語(yǔ)言程序的水平。二、課程設(shè)計(jì)要求.要求編寫并調(diào)試通過(guò)一個(gè)小型軟件,實(shí)現(xiàn)對(duì)軟件或硬件的操作。2.遵循模塊化、結(jié)構(gòu)化的程序設(shè)計(jì)方法。要求程序必須正確。程序簡(jiǎn)明易懂,多運(yùn)用輸入輸出提示,出錯(cuò)信息及必要的注釋。要求程序結(jié)構(gòu)合理,語(yǔ)句使用得當(dāng)。適當(dāng)追求編程技巧和程序運(yùn)行效率。三、課程設(shè)計(jì)題目:win32編寫記事本四、課題分析WINDOW記事本的編寫,要求能實(shí)現(xiàn)基本菜單框架并打開(kāi)窗口, 有能力的同學(xué)可以編寫進(jìn)行數(shù)據(jù)錄入并保存的代碼五、流程圖:開(kāi) 始加載頭文件加載數(shù)據(jù)段編譯代碼設(shè)計(jì)窗體編譯生成文件結(jié) 束六、程序源代碼:.386.modelflat,stdcalloptioncasemap:noneincludeincludeincludelibincludeincludelibincludeincludelibincludeincludelibincludeincludelibICO_MAINEQU1000h;圖標(biāo)IDM_MAINEQU2000h;菜單IDA_MAINEQU2000h;加速鍵IDM_NEWEQU2101h;新建IDM_OPENEQU2102h;打開(kāi)IDM_SAVEEQU2103h;保存IDM_SAVEASEQU2104h;另存為IDM_EXITEQU2105h;退出IDM_UNDOEQU2201h;撤銷IDM_CUTEQU2203h;剪切IDM_COPYEQU2204h;復(fù)制IDM_PASTEEQU2205h;粘貼IDM_DELETEEQU2206h;刪除IDM_FINDEQU2207h;查找IDM_REPLACEEQU220Ah;替換IDM_SELECTALLEQU220Bh;全選IDM_FONTEQU2301h;字體IDM_STATUSBAREQU2401h;狀態(tài)欄IDM_HELPEQU2501h;幫助主題IDM_ABOUTEQU2502h;關(guān)于IDM_MENUHELPEQU2601h;菜單信息.datahInstanceddhWinMainddhMenuddhWinStatusddhWinEditddhFileddhFindDialogddhRichEditdddwFontColorddidFindMessageddstFindFINDREPLACE<>szFindTextdb100dup()szReplaceTextdb100dup()szFileNamedbMAX_PATHdup()stLogFontLOGFONT<>dwOptiondd.dataF_STATUSBARequ00000001hdllEditdb"",0errTitledb"錯(cuò)誤",0noRichEditdb"無(wú)法找到"classNamedb"TextEditor",0captionMaindb"文本編輯器",0classEditdb"RichEdit20A",0fontFacedb"Fixedsys",0modifydb"你已經(jīng)改動(dòng)過(guò)啦,要不要存一下",0filterdb"文本文件(*.txt)",0,"*.txt",0,"所有文件",0,"*.*",0,0defExtdb"txt",0titleFormatdb"%s-我的記事本",0errCreateFiledb"咦!出現(xiàn)問(wèn)題了!",0errOpenFiledb"咦!怎么打不開(kāi)!",0notFounddb"不給力啊,找不到!",0noNamedb"還沒(méi)起名字",0timeFormatdb"%02d:%02d:%02d",0charsFormatdb"字節(jié)數(shù):%d",0lineFormatdb"行:%d",0colFormatdb"列:%d",0helpTitledb"幫助",0helpTextdb"Sorry!無(wú)法提供任何幫助",0aboutTitledb"關(guān)于記事本",0aboutTextdb"我的記事本",0ah,0dh,"作者:李鵬飛",0ah,0dh,"2010年07月01日",0ah,0dh,0dwStatusWidthdd100,200,300,400,-1dwMenuHelp dd0,IDM_MENUHELP,0,0FINDMSGSTRING db "commdlg_FindReplace",0.code;====================================================================================================_CheckModifyStatePROCinvokeSendMessage,hWinEdit,EM_GETMODIFY,0,0獲取控件內(nèi)容是否改變的信息.if eax!=0MB_YESNOCANCELorMB_ICONQUESTION.ifeax==IDYEScall _SaveFile;有待改動(dòng).elseif eax==IDCANCELmoveax,FALSEret.endif.endifmoveax,TRUEret_CheckModifyStateENDP;====================================================================================================;Richedit 的流出操作_StreamProcOutPROCusesebxediesi_dwCookie,lpBuffer,NumBytes,pBytesinvokeWriteFile,hFile,lpBuffer,NumBytes,pBytes,0xoreax,1;如果ReadFile或WriteFile 返回1(成功),則最終eax返回0,說(shuō)明操作成功ret_StreamProcOutENDP;====================================================================================================;Richedit 的流入操作_StreamProcInPROCusesebxediesi_dwCookie,lpBuffer,NumBytes,pBytesinvokeReadFile,hFile,lpBuffer,NumBytes,pBytes,0xoreax,1;如果ReadFile或WriteFile 返回1(成功),則最終eax返回0,說(shuō)明操作成功ret_StreamProcInENDP;====================================================================================================設(shè)置字體和字體的顏色_SetFontPROC_lpszFont,_dwFontSize,_dwColorlocal@stCf:CHARFORMATinvokeRtlZeroMemory,addr@stCf,sizeof @stCf開(kāi)始填充stCf結(jié)構(gòu)movmov

@,sizeof@stCf@,CFM_SIZEorCFM_FACEorCFM_BOLDorCFM_COLOR;字段掩碼,用來(lái)指定結(jié)構(gòu)中哪些字段是有效的push _dwFontSizepop @push _dwColorpop @mov @,0invokelstrcpy,addr@,_lpszFontinvokeSendMessage,hWinEdit,EM_SETTEXTMODE,1,0設(shè)置工作模式invokeSendMessage,hWinEdit,EM_SETCHARFORMAT,SCF_ALL,addr@stCf ;為控件中的全部文本設(shè)置指定的格式ret_SetFontENDP;====================================================================================================查找文字_FindText PROClocal @stFindText:FINDTEXTEX;設(shè)置查找區(qū)域invokeSendMessage,hWinEdit,EM_EXGETSEL,0,addr.if &FR_DOWNpush @ pop @

@

;向下查找將這個(gè)選擇區(qū)域的結(jié)束位置用做下一次查找的起始點(diǎn).endifmov@ ;一直查找到全部文本的最后設(shè)置查找選項(xiàng)mov@,offsetszFindTextmovecx,andecx,FR_MATCHCASEorFR_DOWNorFR_WHOLEWORD查找并把光標(biāo)設(shè)置到找到的文本上invokeSendMessage,hWinEdit,EM_FINDTEXTEX,ecx,addr@stFindText;ecx中存儲(chǔ)的是搜索選項(xiàng).if eax==-1movecx,hWinMain.if hFindDialogmovecx,hFindDialog.endifinvokeMessageBox,ecx,addrnotFound,NULL,MB_OKorMB_ICONINFORMATIONret.endif找到文本以后,文本的位置在FINDTEXTEX結(jié)構(gòu)的chrgText字段中返回,chrgText字段是一個(gè)CHARRANGE結(jié)構(gòu),直接在EM_EXSETSEL消息中使用它將選擇區(qū)域設(shè)置到找到的文字上invokeSendMessage,hWinEdit,EM_EXSETSEL,0,addr@invokeSendMessage,hWinEdit,EM_SCROLLCARET,NULL,NULL卷動(dòng)文字,以便找到的文本能夠出現(xiàn)在用戶的視野中ret_FindText ENDP;====================================================================================================保存文件,如果沒(méi)有打開(kāi)或創(chuàng)建文件則另存為_(kāi)SaveFilePROClocal@stES:EDITSTREAM.if !hFilecall _SaveAs.if !eaxret.endif.endifmov@,FALSE;在Richedit的流操作中寫文件mov@,NULLmov@,offset_StreamProcOut;回調(diào)函數(shù)invokeSendMessage,hWinEdit,EM_STREAMOUT,SF_TEXT,addr@stES流出操作,文本格式是簡(jiǎn)單的文本格式invokeSendMessage,hWinEdit,EM_SETMODIFY,FALSE,0設(shè)置修改狀態(tài)moveax,TRUEret_SaveFile ENDP;=====================================================================================================;另存為_(kāi)SaveAslocallocal

PROC@stOF:OPENFILENAME@stEs:EDITSTREAMinvokeRtlZeroMemory,addr@stOF,sizeof@stOF顯示"保存文件"對(duì)話框填充stOF結(jié)構(gòu)mov@,sizeof@stOFpushhWinMainpop@;所屬窗口mov@,offsetfilter;指定文件名篩選字符串mov@,offsetszFileNamemov@,MAX_PATH;指定lpstrFile參數(shù)指向的緩沖區(qū)的長(zhǎng)度,260mov@,OFN_PATHMUSTEXIST;路徑必須存在mov@,offsetdefExt;默認(rèn)擴(kuò)展名mov@,NULL;標(biāo)題為“另存為”invokeGetSaveFileName,addr@stOF.if eax創(chuàng)建新文件invokeCreateFile,addrszFileName,GENERIC_READorGENERIC_WRITE,\;存取方式:為讀寫FILE_SHARE_READ,\共享屬性:允許其他進(jìn)程同時(shí)以讀方式打開(kāi)文件0,\安全屬性:無(wú)法被繼承CREATE_ALWAYS,\創(chuàng)建新文件,如果文件已經(jīng)存在則清除原文件FILE_ATTRIBUTE_NORMAL,\文件屬性:普通文件0文件模板句柄.if eax!=INVALID_HANDLE_VALUEpush eax.if hFile有打開(kāi)的文件invokeCloseHandle,hFile.endifpop eax保存文件mov hFile,eax;文件句柄callcallcallmovret.else

_SaveFile_SetCaption_SetStatuseax,TRUEinvokeMessageBox,hWinMain,addrerrCreateFile,NULL,MB_OKorMB_ICONERROR.endif.endifmoveax,FALSEret_SaveAs ENDP;=====================================================================================================;打開(kāi)及輸入文件_OpenFile PROClocal @stOF:OPENFILENAMElocal @stES:EDITSTREAMinvokeRtlZeroMemory,addr@stOF,sizeof@stOF;顯示“打開(kāi)文件”對(duì)話框mov@,sizeof@stOFpush hWinMainpop@mov@,offsetfiltermov@,offsetszFileNamemov@,MAX_PATHmov@,OFN_FILEMUSTEXISTorOFN_PATHMUSTEXIST

;文件必須存在invokeGetOpenFileName,addr@stOF.if eax;創(chuàng)建文件invokeCreateFile,addrszFileName,GENERIC_READorFILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0打開(kāi)存在的文件,當(dāng)文件不存在時(shí)函數(shù)會(huì)返回失敗.if eax==INVALID_HANDLE_VALUEinvokeMessageBox,hWinMain,addrerrOpenFile,NULL,MB_OKorMB_ICONSTOPret.endifpush eax.if hFileinvokeCloseHandle,hFile.endifpopeaxmovhFile,eax讀入文件mov@,TRUE;在Richedit的流操作中讀文件mov@,NULLmov@,offset_StreamProcIninvokeSendMessage,hWinEdit,EM_STREAMIN,SF_TEXT,addr@stES流入操作,文本格式是簡(jiǎn)單的文本格式invokeSendMessage,hWinEdit,EM_SETMODIFY,FALSE,0設(shè)置修改狀態(tài)call _SetCaptioncall _SetStatus.endifret_OpenFile ENDP;=====================================================================================================;選擇字體_ChooseFontlocal

PROC@stCF:CHOOSEFONTinvokeRtlZeroMemory,addr@stCF,sizeof@stCFmov @,sizeof@stCFpush hWinMainpop @mov @,offsetstLogFont

;指定字體的名稱和屬性push dwFontColorpop @mov @,CF_SCREENFONTSorCF_INITTOLOGFONTSTRUCTorCF_EFFECTS字體列表中只顯示屏幕字體,對(duì)話框中顯示“效果”復(fù)選框invokeChooseFont,addr@stCF.ifeaxpush@pop dwFontColormov;用戶選擇的字體大小,單位是1/10磅shl eax,1invoke_SetFont,addr.endifret_ChooseFont ENDP;=====================================================================================================設(shè)置標(biāo)題欄的顯示內(nèi)容_SetCaptionPROClocal@szBuffer[1024]:byte.if szFileName如果當(dāng)前是某一文件,則顯示文件名moveax,offsetszFileName.elsemoveax,offsetnoName否則顯示未命名.endifinvokewsprintf,addr@szBuffer,addrtitleFormat,eaxinvokeSetWindowText,hWinMain,addr@szBufferret_SetCaption ENDP;=====================================================================================================設(shè)置菜單項(xiàng),狀態(tài)欄的狀態(tài)和信息_SetStatusPROClocal@stRange:CHARRANGElocal@dwLines,@dwLine,@dwLineStartlocal @szBuffer[256]:bytelocal @stST:SYSTEMTIME在狀態(tài)欄顯示行列信息invokeGetWindowTextLength,hWinEditinvokewsprintf,addr@szBuffer,addrcharsFormat,eaxinvokeSendMessage,hWinStatus,SB_SETTEXT,2,addr@szBuffer總字節(jié)數(shù)invokeSendMessage,hWinEdit,EM_EXGETSEL,0,addr@stRange獲取選定區(qū)域invokeSendMessage,hWinEdit,EM_EXLINEFROMCHAR,0,-1得知指定的字符位于哪一行中mov@dwLine,eaxinvokeSendMessage,hWinEdit,EM_LINEINDEX,eax,0獲取指定行的起始字符的位置movsub ecx,eaxinc ecx顯示給用戶的列號(hào)從1開(kāi)始編號(hào)invokewsprintf,addr@szBuffer,addrcolFormat,ecxinvokeSendMessage,hWinStatus,SB_SETTEXT,1,addr@szBuffer光標(biāo)所在位置的列inc @dwLine顯示給用戶的行號(hào)從1開(kāi)始invokewsprintf,addr@szBuffer,addrlineFormat,@dwLineinvokeSendMessage,hWinStatus,SB_SETTEXT,0,addr@szBuffer光標(biāo)所在位置的行根據(jù)情況改變菜單項(xiàng)的狀態(tài)mov.if eax==@ ;選中區(qū)域?yàn)榭談t復(fù)制粘貼刪除不可用invokeEnableMenuItem,hMenu,IDM_COPY,MF_GRAYEDinvokeEnableMenuItem,hMenu,IDM_CUT,MF_GRAYED.elseinvokeEnableMenuItem,hMenu,IDM_COPY,MF_ENABLEDinvokeEnableMenuItem,hMenu,IDM_CUT,MF_ENABLED.endifinvokeIsClipboardFormatAvailable,CF_TEXT判斷剪貼板的格式是否是文本格式.if eax如果剪貼板有內(nèi)容則可以粘貼invokeEnableMenuItem,hMenu,IDM_PASTE,MF_ENABLED.elseinvokeEnableMenuItem,hMenu,IDM_PASTE,MF_GRAYED.endifinvokeGetWindowTextLength,hWinEdit.if eax如果可以全選invokeEnableMenuItem,hMenu,IDM_SELECTALL,MF_ENABLED.elseinvokeEnableMenuItem,hMenu,IDM_SELECTALL,MF_GRAYED.endifinvokeSendMessage,hWinEdit,EM_GETMODIFY,0,0.ifeax如果可以保存invokeEnableMenuItem,hMenu,IDM_SAVE,MF_ENABLED.elseinvokeEnableMenuItem,hMenu,IDM_SAVE,MF_GRAYED.endif.if dwOption&F_STATUSBAR如果選中了狀態(tài)欄invokeCheckMenuItem,hMenu,IDM_STATUSBAR,MF_CHECKED.elseinvokeCheckMenuItem,hMenu,IDM_STATUSBAR,MF_UNCHECKED.endifret_SetStatusENDP;=====================================================================================================_Resize PROClocal @stRect:RECTlocal @stRectTemp:RECTlocal @dwWidth,@dwHeight取得窗口客戶區(qū)的大小invokeGetClientRect,hWinMain,addr@stRectmovsubmov @dwWidth,eaxmovsubmov @dwHeight,eax計(jì)算及調(diào)整狀態(tài)欄.if dwOption&F_STATUSBARinvokeShowWindow,hWinStatus,SW_SHOWinvokeMoveWindow,hWinStatus,0,0,0,0,TRUEinvokeGetWindowRect,hWinStatus,addr@stRectTempmovsubsub @dwHeight,eax.elseinvokeShowWindow,hWinStatus,SW_HIDE.endif調(diào)整Richedit控件位置invoke,@dwWidth,@dwHeight,TRUEret_Resize ENDP;=====================================================================================================_Quit PROCinvoke_CheckModifyState.if eaxinvokeDestroyWindow,hWinMaininvokePostQuitMessage,NULL;產(chǎn)生一條WM_QUIT消息.if hFile如果有打開(kāi)的文件則關(guān)閉invokeCloseHandle,hFile.endif.endifinvokeKillTimer,hWinMain,1取消定時(shí)器ret_Quit ENDP;=====================================================================================================_CreateWindowPROC注冊(cè)“查找”對(duì)話框消息,初始化“查找”對(duì)話框的結(jié)構(gòu)mov,sizeofstFind;結(jié)構(gòu)的長(zhǎng)度pushhWinMainpop;指定所屬窗口mov,FR_DOWN;把“方向”單選鈕設(shè)置為“向下”mov

,offsetszFindText;lpstrFindWhat

指向包含查找字符串的指針mov

,sizeofszFindText

;wFindWhatLen指示lpstrFindWhat 緩存區(qū)的長(zhǎng)度mov ,offsetszReplaceText ;指向包含替換為字符串的指針mov ,sizeofszReplaceText;lpstrReplaceWith 緩存區(qū)的長(zhǎng)度invokeRegisterWindowMessage,addrFINDMSGSTRING注冊(cè)自定義的消息mov idFindMessage,eax;eax中返回消息ID建立狀態(tài)欄invokeCreateStatusWindow,SBARS_SIZEGRIPorWS_CHILDorWS_VISIBLE,\;顯示狀態(tài)欄右下角的斜條NULL,hWinMain,2父窗口為hWinMain,狀態(tài)欄控件的ID為2,初始化字符串為NULLmovhWinStatus,eaxinvokeSendMessage,hWinStatus,SB_SETPARTS,5,offsetdwStatusWidth ;分成四欄建立輸出文本窗口客戶區(qū)立體邊框WS_CHILDORWS_VISIBLEORWS_VSCROLLORORES_MULTILINEorES_NOHIDESEL,\可以編輯多行文字,失去鍵盤輸入焦點(diǎn)的時(shí)候仍然顯示選擇區(qū)域hWinMain,0,hInstance,NULL;0指定的是子窗口的ID號(hào)movhWinEdit,eaxor dwOption,F_STATUSBAR注釋invoke_SetCaption設(shè)置標(biāo)題invoke_SetStatus設(shè)置狀態(tài)欄invoke_SetFont,addrfontFace,9*20,0注釋在使用多行Edit控件時(shí),父窗口發(fā)送EM_SETEVENTMASK消息給RichEdit控件,指定它對(duì)哪些消息感興趣;wParam必須為0,ENM_CHANGE發(fā)送EN_CHANGE通知 NM_SELCHANGE發(fā)送EN_SELCHANGE通知invokeSendMessage,hWinEdit,EM_SETEVENTMASK,0,ENM_CHANGEorENM_SELCHANGEorENM_MOUSEEVENTSinvokeSendMessage,hWinEdit,EM_EXLIMITTEXT,0,-1設(shè)置控件中能夠容納字符的總數(shù),0FFFFFFFFh(-1)字節(jié)invokeSendMessage,hWinMain,EM_EMPTYUNDOBUFFER,0,0清空undo,redo隊(duì)列ret_CreateWindowENDP;====================================================================================================;窗口過(guò)程_ProcWinMainlocallocallocallocallocallocal

PROC usesebxediesihWnd,uMsg,wParam,lParam@stRange:CHARRANGE@stST:SYSTEMTIME@szBuffer[128]:byte@pt:POINThPopup:DWORD@stES:EDITSTREAMmov eax,uMsg.ifeax==WM_CREATEpush hWndpop hWinMaininvoke_CreateWindowinvokeSetTimer,hWinMain,1,300,NULL設(shè)置定時(shí)器.elseif eax==WM_DROPFILES拖放文件call _CheckModifyState.ifeax==FALSEcall _SaveFile.endifinvokeDragQueryFile,wParam,0,addrszFileName,128獲取文件的路徑invokeCreateFile,addrszFileName,GENERIC_READorFILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0;打開(kāi)文件movhFile,eaxmov@,TRUE

;在Richedit

的流操作中讀文件mov@,NULLmov@,offset_StreamProcIninvokeSendMessage,hWinEdit,EM_STREAMIN,SF_TEXT,addr@stES流入操作,文本格式是簡(jiǎn)單的文本格式invokeSendMessage,hWinEdit,EM_SETMODIFY,FALSE,0設(shè)置修改狀態(tài)call _SetCaptioncall _SetStatus.elseifeax==WM_TIMERinvokeGetLocalTime,addr@stSTmovzxmovzxmovzxinvokewsprintf,addr@szBuffer,addrtimeFormat,eax,ebx,ecxinvokeSendMessage,hWinStatus,SB_SETTEXT,3,addr@szBuffer.elseifeax==WM_SIZEinvoke_Resize.elseifeax==WM_NOTIFYmov eax,lParammov eax,[eax+].if eax==hWinEditinvoke_SetStatus.endifpush esimov esi,lParamassumeesi:ptr NMHDR.if[esi].code==EN_MSGFILTER鼠標(biāo)滑輪發(fā)送的消息assumeesi:ptrMSGFILTER.if[esi].msg==WM_RBUTTONDOWNinvokeGetMenu,hWinMain獲取窗口主菜單句柄invokeGetSubMenu,eax,1獲取彈出式子菜單的句柄movhPopup,eaxinvoke_SetStatusmov edx,[esi].lParam位置信息mov ecx,edxand edx,0FFFFhshr ecx,16mov @,edxmov @,ecxinvoke ClientToScreen,hWinMain,addr@ptinvoke TrackPopupMenu,hPopup,TPM_LEFTALIGNor,NULL,hWinMain,NULL.endif.endifpop esi.elseif eax==WM_MENUSELECTinvokeMenuHelp,WM_MENUSELECT,wParam,lParam,lParam,hInstance,hWinStatus,offsetdwMenuHelp.elseifeax==WM_COMMANDmov eax,wParammovzx eax,ax.ifeax==IDM_OPENinvoke_CheckModifyState.ifeax;eax==TRUE說(shuō)明沒(méi)有被修改call _OpenFile.endif.elseifeax==IDM_NEWinvoke_CheckModifyState.if eax.if hFileinvokeCloseHandle,hFilemov hFile,0.endifmovszFileName,0invokeSetWindowText,hWinEdit,NULLinvoke_SetCaptioninvoke_SetStatus.endif.elseif eax==IDM_SAVEcall _SaveFile.elseif eax==IDM_SAVEAScall _SaveAs.elseif eax==IDM_EXITcall _Quit.elseif eax==IDM_UNDOinvokeSendMessage,hWinEdit,EM_UNDO,0,0.elseif eax==IDM_SELECTALLmov@,0mov@,-1invokeSendMessage,hWinEdit,EM_EXSETSEL,0,addr@stRange.elseif eax==IDM_COPYinvokeSendMessage,hWinEdit,WM_COPY,0,0.elseif eax==IDM_CUTinvokeSendMessage,hWinEdit,WM_CUT,0,0.elseif eax==IDM_PASTEinvokeSendMessage,hWinEdit,WM_PASTE,0,0.elseif eax==IDM_FINDand,notFR_DIALOGTERM;FR_DIALOGTERM代表取消按鈕invokeFindText,addrstFind.if eaxmovhFindDialog,eax.endif.elseif eax==IDM_FONTinvoke_ChooseFont.elseif eax==IDM_STATUSBARxordwOption,F_STATUSBAR注釋invoke_Resize.elseif eax==IDM_HELPinvokeMessageBox,NULL,offsethelpText,offsethelpTitle,MB_OKorMB_ICONQUESTION.elseif eax==IDM_ABOUTinvokeMessageBox,NULL,offsetaboutText,offsetaboutTitle,MB_OK.endif.elseif eax==idFindMessage.if &FR_DIALOGTERMmovhFindDialog,0.elseinvoke_FindText.endif.elseif eax==WM_ACTIVATE窗口激活moveax,wParam.if (ax==WA_CLICKACTIVE)||(ax==WA_ACTIVE)由鼠標(biāo)點(diǎn)擊激活或被鼠標(biāo)點(diǎn)擊以外的方法激活invokeSetFocus,hWinEdit.endif.elseif eax==WM_CLOSEcall _Quit.elseinvokeDefWindowProc,hWnd,uMsg,wParam,lParamret.endifxoreax,eaxret_ProcWinMain ENDP;====================================================================================================_WinMainPROClocal@stWndClass:WNDCLASSEXlocal@stMsg:MSGlocal@hAcceleratorinvokeGetModuleHandle,NULL ;得到應(yīng)用程序的句柄movhInstance,eaxinvokeLoadMenu,hInstance,IDM_MAIN ;加載菜單,IDM_MAIN指定要裝入的菜單資源IDmovhMenu,eax ;eax返回菜單句柄invokeLoadAccelerators,hIns

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論