当前位置: 首页 > 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/353319.html

相关文章:

  • 网站设计及建设合同邹平县seo网页优化外包
  • 网站建设青岛杭州seo论坛
  • 重庆做网站建设公司排名seo职业规划
  • 河南手机网站建设爱站关键词挖掘软件
  • 免费商城版网站百度竞价排名收费标准
  • 电商网站开发源码公司怎么做网站推广
  • 网站统计功能设计上海今天刚刚发生的新闻
  • 临夏州建设网站爱网站
  • 建设部网站城建学院湘潭关键词优化公司
  • 做新闻网站编辑需要什么怎么开设自己的网站
  • baidu网站建设百度资讯
  • 微网站开发制作注册网站平台
  • 电子商城网站建站客十大最靠谱教育培训机构
  • 济南网站建设联系小七建设网站的步骤
  • 朝阳改版网站营销团队找产品合作
  • 中国做乱的小说网站怎么建立一个自己的网站
  • cms管理手机网站指数基金什么意思
  • 云网站 深圳seo快速排名软件网站
  • 网站空间商 权限百度竞价点击价格
  • 政府基层网站建设问题ppt网站整站优化公司
  • 部门子网站建设领导小组上海app开发公司
  • 进一步网站建设武汉网络推广自然排名
  • 婚恋网站开发昆明百度关键词优化
  • wordpress搭建购物网站网店运营基础知识
  • 确定网站开发团队企业网站建站模板
  • 主要网站维护软件seo搜索优化是什么呢
  • 新站seo竞价一个具体网站的seo优化
  • ui做的好的公司网站百度搜索关键词规则
  • 在哪里找给公司做网站优化的人今日油价92汽油价格调整最新消息
  • 钉钉小程序开发长沙网站se0推广优化公司