当前位置: 首页 > wzjs >正文

网站基础建设和管理暂行办法为企业策划一次网络营销活动

网站基础建设和管理暂行办法,为企业策划一次网络营销活动,网站建设实训报告,室内设计联盟官方网站入口;运行效果 ;RadASM环境,win32汇编入门教程之四 ;在教程三里面,我们学了如何增加控件,学了增加1个按钮,但是它只能显示出来,却没有功能。现在我们给它加点儿功能。 ;在这个教程里,学一下给按钮增加点击后改变…

;运行效果

;RadASM环境,win32汇编入门教程之四
;在教程三里面,我们学了如何增加控件,学了增加1个按钮,但是它只能显示出来,却没有功能。现在我们给它加点儿功能。
;在这个教程里,学一下给按钮增加点击后改变按钮上的文字,和让按钮无效
;下面的代码就是示例,我们可以把它和教程三的代码比较一下,看看有什么变化,然后研究一下变化的内容是什么意思。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386 
.model flat,stdcall 
option casemap:none 
include      windows.inc 
include      user32.inc 
includelib   user32.lib           
include      kernel32.inc 
includelib   kernel32.lib 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD       
                                                
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.DATA                                   
ClassName           db "SimpleWinClass",0        
AppName             db "窗口程序的模版",0
szButtonClassName   db "button",0              ;按钮类名
szButtonTitle       db "我是被测试的按钮",0    
     
szButtonTitle01     db "我是改变后的文字",0    ;新增的内容
szButtonTitle02     db "按钮2",0               ;新增的内容
szButtonTitle03     db "按钮3",0               ;新增的内容
.DATA?                                  
hInstance   HINSTANCE  ?                
CommandLine LPSTR      ?
hButton     HWND       ?                       ;按钮控件句柄变量
hButton01   HWND       ?                       ;新增的内容
hButton02   HWND       ?                       ;新增的内容
.const;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
ButtonID     equ 10                            ;按钮控件标识符
ButtonID01   equ 11
ButtonID02   equ 12                            ;新增的内容               
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.CODE                      

start:                      
invoke GetModuleHandle, NULL                                                    
mov hInstance,eax 
invoke GetCommandLine                                                                                       
mov CommandLine,eax 
invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT        
invoke ExitProcess, eax                                          
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD 
        LOCAL wc:WNDCLASSEX                                          
        LOCAL msg:MSG 
        LOCAL hwnd:HWND 

        mov   wc.cbSize,SIZEOF WNDCLASSEX                            
        mov   wc.style, CS_HREDRAW or CS_VREDRAW                     
        mov   wc.lpfnWndProc, OFFSET WndProc                        
        mov   wc.cbClsExtra,NULL 
        mov   wc.cbWndExtra,NULL 
        push  hInstance 
        pop   wc.hInstance 
        mov   wc.hbrBackground,COLOR_WINDOW 
        mov   wc.lpszMenuName,NULL 
        mov   wc.lpszClassName,OFFSET ClassName 
        invoke LoadIcon,NULL,IDI_APPLICATION                          
        mov   wc.hIcon,eax 
        mov   wc.hIconSm,eax 
        invoke LoadCursor,NULL,IDC_ARROW                              
        mov   wc.hCursor,eax 
        invoke RegisterClassEx, addr wc                              
        invoke CreateWindowEx,NULL, ADDR ClassName,ADDR AppName,WS_OVERLAPPEDWINDOW,100,100,400,300, NULL,NULL,hInst, NULL 
        mov   hwnd,eax 
        invoke ShowWindow, hwnd,CmdShow                              
         invoke UpdateWindow, hwnd                                    

        .while TRUE                                                   
                invoke GetMessage, ADDR msg,NULL,0,0 
                .break .if (!eax) 
                invoke TranslateMessage, ADDR msg 
                invoke DispatchMessage, ADDR msg 
        .endw 
        mov     eax,msg.wParam                                         
        ret 
WinMain endp 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM  
         .if uMsg == WM_CREATE                
                invoke CreateWindowEx,NULL,ADDR szButtonClassName,ADDR szButtonTitle, WS_TABSTOP OR  WS_VISIBLE OR WS_CHILD OR BS_DEFPUSHBUTTON  ,80,40,200,25,hWnd,ButtonID,NULL,NULL        ;创建按钮控件                        
                mov hButton,eax
                
                invoke CreateWindowEx,NULL,ADDR szButtonClassName,ADDR szButtonTitle02, WS_TABSTOP OR  WS_VISIBLE OR WS_CHILD OR BS_DEFPUSHBUTTON  ,80,100,200,25,hWnd,ButtonID01,NULL,NULL        ;创建按钮控件二                        
                mov hButton01,eax
                
                invoke CreateWindowEx,NULL,ADDR szButtonClassName,ADDR szButtonTitle03, WS_TABSTOP OR  WS_VISIBLE OR WS_CHILD OR BS_DEFPUSHBUTTON  ,80,140,200,25,hWnd,ButtonID02,NULL,NULL        ;创建按钮控件三                        
                mov hButton02,eax
        .elseif uMsg == WM_COMMAND       
                mov eax,wParam        
                .if  ax == ButtonID01
                        invoke SendMessage,hButton,WM_SETTEXT,0,addr szButtonTitle01      ;改变第1个按钮的文字 
                .elseif  ax == ButtonID02 
                        invoke  EnableWindow,hButton,FALSE                                ;使第1个按钮按钮无效       
                .endif      
        .elseif uMsg == WM_DESTROY                                           
                invoke PostQuitMessage,NULL                               
        .else 
                invoke DefWindowProc,hWnd,uMsg,wParam,lParam             
        ret 
    .endif 
    xor eax,eax 
    ret 
WndProc endp 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start      
;在与教程三比较后发现,这里多了以下这一段                                          
        .elseif uMsg == WM_COMMAND       
                mov eax,wParam        
                .if     ax == ButtonID01
                        invoke SendMessage,hButton,WM_SETTEXT,0,addr szButtonTitle01      ;改变第1个按钮的文字 
                .elseif  ax == ButtonID02 
                        invoke  EnableWindow,hButton,FALSE                                ;使第1个按钮按钮无效       
                .endif 
;这里的uMsg就是前面WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 里的第2个参数,就是传到这个窗口函数里来的消息
;消息有很多不同的种类,所以要分别处理。这个是WM_COMMAND消息,就是命令消息的意思。hWnd则是传进来的窗口句柄,这里指的是主窗口句柄。
;与它同时传进来的还有wParam和lParam,wParam的值是消息码,总共有4个字节,其中低位的2个字节是标识符,高位的2个字节是消息码,就是单击或双击的
;mov eax,wParam 是把wParam的值给eax,然后判断ax的值是哪个控件的标识符。ax是eax的低的2个字节。
;本来还要判断eax的高位2字节是什么内容,这里直接偷懒了,不管它是单击还是双击,只要是按钮标识符为ButtonID01的消息,直接发送消息给指定的按钮
;invoke SendMessage,hButton,WM_SETTEXT,0,addr szButtonTitle01这一句就是发送WM_SETTEXT消息给句柄为hButton,即第1个按钮,WM_SETTEXT是改变窗口内容的消息。addr szButtonTitle01是附带的新的内容。
;而lParam的值则是控件句柄,如果有多个不同的控件,比如既有按钮,又有编辑框,那这个就要用的上。
;这里偷了个懒,因为没有其它控件了,就不管lParam参数了。 
;invoke  EnableWindow,hButton,FALSE 这句是直接调用函数让某窗口无效,这里的窗口是第1个按钮。也可以像前面那样,通过发送消息让窗口无效。               

http://www.dtcms.com/wzjs/405102.html

相关文章:

  • 新疆建设职业技术学院招生信息网站seo工作流程
  • java网站开发思维导图怎样在百度上做广告
  • 如何在对方网站上做外链深圳网站建设公司
  • 视频上到什么地方可以做网站链接中文网站排名
  • 多地优化调整疫情防控措施seo的方法
  • 公司网站如何更改内容企业seo如何优化
  • 网站推广页面 英语体验营销
  • 上海网站空间合肥做网站公司哪家好
  • 南昌网站建设公司价位适合小学生的最新新闻
  • 网站建设培训哪家好有创意的网络营销案例
  • lamp wordpress主题太原百度快速优化排名
  • 品牌推广部河南网站seo
  • 哈尔滨大型网站制作开发站长素材网站
  • ppt网站超链接怎么做企业seo顾问服务阿亮
  • 论坛门户网站开发企业自助建站
  • 如何承接设计网站建设英语seo什么意思
  • 数字广东网络建设有限公司电话杭州网络排名优化
  • 沈阳网站建设多少钱邵阳网站seo
  • 推荐几个没封的正能量网站产品市场营销策划方案
  • ubuntu中wordpressseo推广系统
  • 容桂营销网站建设建站公司最新报价
  • 网站邮箱接口怎么设置搜索推广公司
  • 网站的横幅怎么做吸引人的软文
  • wordpress虚拟3d网站sem代运营
  • 邢台移动网站建设报价比较正规的代运营
  • 常德做网站2022适合小学生的简短新闻
  • 网站建设中常用的技术有哪些seo超级外链发布
  • 网站建设课程设计论文百度网站推广申请
  • 网站建设与维护教学课件acca少女网课视频
  • 软件下载网站整站源码成年s8视频加密线路