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

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

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




                            。elseif eax   IDM_REDO

                                    invoke  SendMessage;hWinEdit;EM_REDO;0;0

                            。elseif eax   IDM_SELALL

                                    mov     @stRange。cpMin;0

                                    mov     @stRange。cpMax;…1

                                    invoke  SendMessage;hWinEdit;EM_EXSETSEL;

                                            0;addr @stRange

                            。elseif eax   IDM_COPY

                                    invoke  SendMessage;hWinEdit;WM_COPY;0;0

                            。elseif eax   IDM_CUT

                                    invoke  SendMessage;hWinEdit;WM_CUT;0;0

                        。elseif eax   IDM_PASTE

                                invoke  SendMessage;hWinEdit;WM_PASTE;0;0

                        。elseif eax   IDM_FIND

                                        and stFind。Flags;not FR_DIALOGTERM

                                invoke  FindText;addr stFind

                                。if     eax

                                        mov hFindDialog;eax

                                。endif

                        。elseif eax   IDM_FINDPREV

                                and     stFind。Flags;not FR_DOWN

                                invoke  _FindText

                        。elseif eax   IDM_FINDNEXT

                                or      stFind。Flags;FR_DOWN

                                invoke  _FindText

                        。endif

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

                。elseif eax   WM_INITMENU

                        call        _SetStatus

                。elseif eax   idFindMessage

                        。if     stFind。Flags & FR_DIALOGTERM

                                mov hFindDialog;0

                        。else

                                invoke  _FindText

                        。endif

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

                。elseif eax   WM_ACTIVATE

                        mov     eax;wParam

                        。if     (ax   WA_CLICKACTIVE ) || (ax  WA_ACTIVE)

                        invoke  SetFocus;hWinEdit

                。endif

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

            。elseif     eax   WM_CREATE

                        push        hWnd

                        pop     hWinMain

                        invoke  _Init

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

            。elseif     eax   WM_CLOSE

                        call        _Quit

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

            。else

                        invoke  DefWindowProc;hWnd;uMsg;wParam;lParam

                        ret

                。endif

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

                xor     eax;eax

                ret

 

_ProcWinMain    endp

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

_WinMain        proc

                local   @stWndClass:WNDCLASSEX

                local   @stMsg:MSG

                local   @hAccelerator;@hRichEdit

 

                invoke  LoadLibrary;offset szDllEdit

                mov     @hRichEdit;eax

                invoke  GetModuleHandle;NULL

                mov     hInstance;eax

                invoke  LoadMenu;hInstance;IDM_MAIN

                mov     hMenu;eax

                invoke  LoadAccelerators;hInstance;IDA_MAIN

                mov     @hAccelerator;eax

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

; 注册窗口类

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

                invoke  RtlZeroMemory;addr @stWndClass;sizeof @stWndClass

                invoke  LoadIcon;hInstance;ICO_MAIN

                mov     @stWndClass。hIcon;eax

                mov     @stWndClass。hIconSm;eax

                invoke  LoadCursor;0;IDC_ARROW

                mov     @stWndClass。hCursor;eax

                push        hInstance

                pop     @stWndClass。hInstance

                mov     @stWndClass。cbSize;sizeof WNDCLASSEX

                mov     @stWndClass。style;CS_HREDRAW or CS_VREDRAW

                mov     @stWndClass。lpfnWndProc;offset _ProcWinMain

                mov     @stWndClass。hbrBackground;COLOR_BTNFACE+1

                mov     @stWndClass。lpszClassName;offset szClassName

                invoke  RegisterClassEx;addr @stWndClass

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

; 建立并显示窗口

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

                invoke  CreateWindowEx;NULL;

                        offset szClassName;offset szCaptionMain;

                        WS_OVERLAPPEDWINDOW;

                        CW_USEDEFAULT;CW_USEDEFAULT;700;500;

                        NULL;hMenu;hInstance;NULL

                mov     hWinMain;eax



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


第9章 通用控件


9。4 使用Richedit控件(5)

    
                invoke  ShowWindow;hWinMain;SW_SHOWNORMAL

                invoke  UpdateWindow;hWinMain

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

; 消息循环

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

                。while  TRUE

                        invoke  GetMessage;addr @stMsg;NULL;0;0

                        。break  。if eax  0

                        invoke  TranslateAccelerator;hWinMain;

                                @hAccelerator;addr @stMsg

                        。if     eax  0

                                invoke  TranslateMessage;addr @stMsg

                                invoke  DispatchMessage;addr @stMsg

                        。endif

                。endw

                invoke  FreeLibrary;@hRichEdit

                ret

 

_WinMain        endp

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

start:

                call        _WinMain

                invoke  ExitProcess;NULL

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

                end     start

程序的资源脚本文件Richedit。rc的内容如下:

//》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

#include                    

//》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

#define ICO_MAIN            1000

#define IDA_MAIN            2000

//》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

#define IDM_MAIN            2000

#define IDM_OPEN            2101

#define IDM_SAVE            2102

#define IDM_EXIT            2103

#define IDM_UNDO            2201

#define IDM_REDO            2202

#define IDM_SELALL      2203

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