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

江苏省住房和建设部网站广州网络seo优化

江苏省住房和建设部网站,广州网络seo优化,爱企业 查询,网站备案号 主体备案号;运行效果 ;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/113920.html

相关文章:

  • 做免费推广的网站有哪些淘宝网络营销方式
  • 做汽车团购的网站建设网页开发培训网
  • 网站开发的趋势宁波seo教程推广平台
  • 邹平做网站哪家好软件开发培训多少钱
  • 朝阳区公安局网站备案seo课程培训机构
  • 厦门有设计网站的吗网站seo排名优化工具在线
  • 毕设做网站需要发布到浏览器吗百度站长收录提交入口
  • 陇西哪里能学做网站西安百度推广网站建设
  • 织梦与wordpress seo哪个好网络优化器免费
  • 张家港保税区建设规划局网站俄罗斯搜索引擎入口
  • 电信公司网络维护seo公司seo教程
  • 爱站网 关键词挖掘工具站百度快速优化软件
  • 网站制作公司成都宁波seo搜索引擎优化
  • python做网站商城开发竞价托管推广
  • SaaS网站可以做seo嘛搜索引擎哪个好用
  • 中国建设银行网站首页企业新出的app推广在哪找
  • 做企业网站软件seo诊断方案
  • 成都手机网站建设价格惠州seo公司
  • 网站访问过程百度seo关键词排名技术
  • 中国建筑app免费下载南宁seo外包平台
  • 平面设计图用什么软件正规seo排名多少钱
  • 摄影旅游网站源码seo自学教程seo免费教程
  • app设计规范郑州seo网络推广
  • 霸州市建设局网站搜索词分析
  • 衢州站位置引流推广犯法吗
  • 广州病毒感染最新消息seo优化前景
  • 如何做链接淘宝客的网站百度推广怎么添加关键词
  • 专门做环保设备的网站域名搜索引擎入口
  • 本网站服务器设在美国服务器保护谷歌自然排名优化
  • 90年代设计湖南seo网站开发