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

windows环境下32位汇编语言程序设计-第55部分

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




include         windows。inc

include         user32。inc

includelib      user32。lib

include         kernel32。inc

includelib      kernel32。lib

include         ctl32。inc

includelib      ctl32。lib

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

; Equ 等值定义

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

ICO_MAIN            equ     1000

IDM_MAIN            equ     1000

IDM_NEW         equ     1101

IDM_OPEN            equ     1102

IDM_SAVE            equ     1103

IDM_PAGESETUP   equ     1104

IDM_PRINT       equ     1105

IDM_EXIT            equ     1106

IDM_CUT         equ     1201

IDM_COPY            equ     1202

IDM_PASTE       equ     1203

IDM_FIND            equ     1204

IDM_REPLACE     equ     1205

IDM_HELP            equ     1301

 

ID_TOOLBAR      equ     1

ID_EDIT         equ     2

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

; 数据段

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

                    。data?

 

hInstance       dd      ?

hWinMain            dd      ?

hMenu           dd      ?

hWinToolbar     dd      ?

hWinEdit            dd      ?

 

                    nst

szClass         db      'EDIT';0

szClassName     db      'ToolbarExample';0

szCaptionMain   db      '工具栏示例';0

szCaption       db      '命令消息';0

szFormat            db      '收到 WM_MAND 消息,命令ID:%d';0

stToolbar       equ     this byte

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

TBBUTTON  

NUM_BUTTONS     EQU     16

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

; 代码段

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

 



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


第9章 通用控件


9。3 使用工具栏(2)

    
                    de

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

_Resize         proc

                    local   @stRect:RECT;@stRect1:RECT

 

                    invoke  SendMessage;hWinToolbar;TB_AUTOSIZE;0;0

                    invoke  GetClientRect;hWinMain;addr @stRect

                    invoke  GetWindowRect;hWinToolbar;addr @stRect1

                    mov     eax;@stRect1。bottom

                    sub     eax;@stRect1。top

                    mov     ecx;@stRect。bottom

                    sub     ecx;eax

                    invoke  MoveWindow;hWinEdit;0;eax;@stRect。right;ecx;TRUE

                    ret

 

_Resize         endp

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

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

                    local   @szBuffer'128':byte

 

                    mov     eax;uMsg

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

                    。if     eax   WM_CLOSE

                            invoke  DestroyWindow;hWinMain

                            invoke  PostQuitMessage;NULL

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

                    。elseif eax   WM_CREATE

                            mov     eax;hWnd

                            mov     hWinMain;eax

                                 invoke   CreateWindowEx;WS_EX_CLIENTEDGE;addr szClass;

                                    NULL;WS_CHILD or WS_VISIBLE or ES_MULTILINE 

                                    or ES_WANTRETURN or WS_VSCROLL or

                                    ES_AUTOHSCROLL;0;0;0;0;

                                    hWnd;ID_EDIT;hInstance;NULL

                            mov     hWinEdit;eax

                            invoke  CreateToolbarEx;hWinMain;WS_VISIBLE or

                                    WS_CHILD or TBSTYLE_FLAT or TBSTYLE_TOOLTIPS or

                                          CCS_ADJUSTABLE;ID_TOOLBAR;0;HINST_MCTRL;

                                    IDB_STD_SMALL_COLOR;offset stToolbar;

                                    NUM_BUTTONS;0;0;0;0;sizeof TBBUTTON

                            Mov     hWinToolbar;eax

                            Call        _Resize

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

                    。elseif eax   WM_MAND

                            mov     eax;wParam

                            。if     ax    IDM_EXIT

                                    invoke  EndDialog;hWnd;NULL

                            。elseif ax !=   ID_EDIT

                                    invoke  wsprintf;addr @szBuffer;

                                            addr szFormat;wParam

                                    invoke  MessageBox;hWnd;addr @szBuffer;

                                            addr szCaption;

                                            MB_OK or MB_ICONINFORMATION

                            。endif

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

                        。elseif eax   WM_SIZE

                                call        _Resize

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

; 处理用户定制工具栏消息

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

                        。elseif eax   WM_NOTIFY

                                mov     ebx;lParam

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

; 因为印刷宽度,请注意缩进格式!

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

。if     'ebx + NMHDRde'  TTN_NEEDTEXT

            assume  ebx:ptr TOOLTIPTEXT

            mov     eax;'ebx'。hdr。idFrom

            mov     'ebx'。lpszText;eax

            push        hInstance

            pop     'ebx'。hinst

            assume  ebx:nothing

。elseif ('ebx + NMHDRde'  TBN_QUERYINSERT) || 

            ('ebx + NMHDRde'  TBN_QUERYDELETE)

            mov     eax;TRUE

            ret

。elseif 'ebx + NMHDRde'  TBN_GETBUTTONINFO

            assume  ebx:ptr TBNOTIFY

            mov     eax;'ebx'。iItem

            。if     eax 《 NUM_BUTTONS

                    mov     ecx;sizeof TBBUTTON

                    mul     ecx

                    add     eax;offset stToolbar

                    invoke  RtlMoveMemory;addr 'ebx'。tbButton;eax;sizeof TBBUTTON

                    invoke  LoadString;hInstance;'ebx'。tbButton。idmand;

                            addr @szBuffer;sizeof @szBuffer

                    lea     eax;@szBuffer

                    mov     'ebx'。pszText;eax

                    invoke  lstrlen;addr @szBuffer

                    mov     'ebx'hText;eax

                    assume  ebx:nothing

                    mov     eax;TRUE

                    ret

            。endif

。endif

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

                    。else

                            invoke  DefWindowProc;hWnd;uMsg;wParam;lParam

                            ret

                    。endif

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

                    xor     eax;eax

                    ret

 

_ProcWinMain        endp

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

_WinMain            proc

                    local   @stWndClass:WNDCLASSEX

                    local   @stMsg:MSG

 

                    invoke  InitmonControls

                    invoke  GetModuleHandle;NULL

                    mov     hInstance;eax

                    invoke  LoadMenu;hInstance;IDM_MAIN

                    mov     hMenu;eax

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

; 注册窗口类

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

                    invoke  RtlZeroMemory;addr @stWndClass;sizeof @stWndClass

                    invoke  LoadIcon;hInstance;ICO_MAIN

                    mov     @stWndClass。hIcon;eax

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