友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
飞读中文网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

windows环境下32位汇编语言程序设计-第78章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




                ret

 

_FindText   endp

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

; 根据情况改变菜单项状态

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_SetStatus  proc

                local   @stRange:CHARRANGE

 

                invoke  SendMessage;hWinEdit;EM_EXGETSEL;0;addr @stRange

;********************************************************************

                mov     eax;@stRange。cpMin

                。if     eax   @stRange。cpMax

                        invoke  EnableMenuItem;hMenu;IDM_COPY;MF_GRAYED

                        invoke  EnableMenuItem;hMenu;IDM_CUT;MF_GRAYED

                。else

                        invoke  EnableMenuItem;hMenu;IDM_COPY;MF_ENABLED

                        invoke  EnableMenuItem;hMenu;IDM_CUT;MF_ENABLED

                。endif

;********************************************************************

                invoke  SendMessage;hWinEdit;EM_CANPASTE;0;0

                。if     eax

                        invoke  EnableMenuItem;hMenu;IDM_PASTE;MF_ENABLED

                。else

                            invoke  EnableMenuItem;hMenu;IDM_PASTE;MF_GRAYED

                。endif

;********************************************************************

                invoke  SendMessage;hWinEdit;EM_CANREDO;0;0

                。if     eax

                        invoke  EnableMenuItem;hMenu;IDM_REDO;MF_ENABLED

                。else

                        invoke  EnableMenuItem;hMenu;IDM_REDO;MF_GRAYED

                。endif

;********************************************************************

                invoke  SendMessage;hWinEdit;EM_CANUNDO;0;0

                。if     eax

                        invoke  EnableMenuItem;hMenu;IDM_UNDO;MF_ENABLED

                。else

                        invoke  EnableMenuItem;hMenu;IDM_UNDO;MF_GRAYED

                。endif

;********************************************************************

                invoke  GetWindowTextLength;hWinEdit

                。if     eax

                        invoke  EnableMenuItem;hMenu;IDM_SELALL;MF_ENABLED

                。else

                        invoke  EnableMenuItem;hMenu;IDM_SELALL;MF_GRAYED

                。endif

;********************************************************************

                invoke  SendMessage;hWinEdit;EM_GETMODIFY;0;0

                。if     eax && hFile

                        invoke  EnableMenuItem;hMenu;IDM_SAVE;MF_ENABLED

                。else

                        invoke  EnableMenuItem;hMenu;IDM_SAVE;MF_GRAYED

                。endif

;********************************************************************

                。if     szFindText

                        invoke  EnableMenuItem;hMenu;IDM_FINDNEXT;MF_ENABLED

                        invoke  EnableMenuItem;hMenu;IDM_FINDPREV;MF_ENABLED

                。else

                        invoke  EnableMenuItem;hMenu;IDM_FINDNEXT;MF_GRAYED

                        invoke  EnableMenuItem;hMenu;IDM_FINDPREV;MF_GRAYED

                。endif

;********************************************************************

                ret

 

_SetStatus  endp

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_Init       proc

                local   @stCf:CHARFORMAT

 

;********************************************************************

; 注册“查找”对话框消息,初始化“查找”对话框的结构

;********************************************************************

                push        hWinMain

                pop     stFind。hwndOwner

                invoke  RegisterWindowMessage;addr FINDMSGSTRING

                mov     idFindMessage;eax

;********************************************************************

; 建立输出文本窗口

;********************************************************************

                invoke  CreateWindowEx;WS_EX_CLIENTEDGE;offset szClassEdit;

                        NULL;WS_CHILD OR WS_VISIBLE OR WS_VSCROLL 

                        OR WS_HSCROLL OR ES_MULTILINE or ES_NOHIDESEL;

                        0;0;0;0;hWinMain;0;hInstance;NULL

                mov     hWinEdit;eax

                invoke  SendMessage;hWinEdit;EM_SETTEXTMODE;TM_PLAINTEXT;0

                invoke  RtlZeroMemory;addr @stCf;sizeof @stCf

                mov     @stCf。cbSize;sizeof @stCf

                mov     @stCf。yHeight;9 * 20

                mov     @stCf。dwMask;CFM_FACE or CFM_SIZE or CFM_BOLD

                invoke  lstrcpy;addr @stCf。szFaceName;addr szFont

                invoke  SendMessage;hWinEdit;EM_SETCHARFORMAT;0;addr @stCf

                invoke  SendMessage;hWinEdit;EM_EXLIMITTEXT;0;…1

                ret

 

_Init       endp

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_Quit       proc

 

                invoke  _CheckModify

                。if     eax

                        invoke  DestroyWindow;hWinMain

                        invoke  PostQuitMessage;NULL

                        。if     hFile



 
来源:电子工业出版社 作者:罗云彬 上一页         回书目         下一页          
上一页         回书目         下一页          
  


第9章 通用控件


9。4 使用Richedit控件(4)

    
                                invoke  CloseHandle;hFile

                        。endif

                    。endif

                    ret

 

_Quit           endp

;》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

_ProcWinMain        proc        uses ebx edi esi hWnd;uMsg;wParam;lParam

                    local   @stRange:CHARRANGE

                    local   @stRect:RECT

 

                    mov     eax;uMsg

                    。if     eax   WM_SIZE

                            invoke  GetClientRect;hWinMain;addr @stRect

                            invoke  MoveWindow;hWinEdit;0;0;

                                    @stRect。right;@stRect。bottom;TRUE

;********************************************************************

; 处理菜单、加速键及工具栏消息

;********************************************************************

                    。elseif eax   WM_MAND

                            mov     eax;wParam

                            movzx   eax;ax

                            。if     eax   IDM_OPEN

                                    invoke  _CheckModify

                                    。if     eax

                                            call        _OpenFile

                                    。endif

                            。elseif eax   IDM_SAVE

                                    call        _SaveFile

                            。elseif eax   IDM_EXIT

                                    invoke  _Quit

                            。elseif eax   IDM_UNDO

                                    invoke  SendMessage;hWinEdit;EM_UNDO;0;0

                            。elseif eax   IDM_REDO

                                    invoke
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!