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

手机在线网站小说代理平台

手机在线网站,小说代理平台,男学网站开发,app导航网站建设多少钱;运行效果 ;win32汇编环境,对 WM_MOUSEMOVE 消息的理解 ;理解在 WM_MOUSEMOVE 消息发生时,同时来的wParam和lParam值的含义,并取出各自的值进行运用。从这例子也可以更好的理解windows的消息机制. ;WM_MOUSEMOVE消息就是当鼠标移动时,发送给窗…

;运行效果

;win32汇编环境,对 WM_MOUSEMOVE 消息的理解
;理解在 WM_MOUSEMOVE 消息发生时,同时来的wParam和lParam值的含义,并取出各自的值进行运用。从这例子也可以更好的理解windows的消息机制.
;WM_MOUSEMOVE消息就是当鼠标移动时,发送给窗口的消息。如果窗口上面的其它控件,则经过控件上面的不起作用。因为其它控件不是主窗口
;直接抄进RadAsm可编译运行。重要部分加备注。
;下面为asm文件
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386 
.model flat,stdcall 
option casemap:none 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
include    windows.inc 
include    user32.inc 
include    kernel32.inc 

includelib user32.lib 
includelib kernel32.lib 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 自定义函数声明
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD   ;对话框窗口函数
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; 数据段
;Equ 等值定义

ICO_MAIN   equ 1000    ;图标 
IDSTATIC01 equ 21 
IDSTATIC02 equ 22
IDSTATIC03 equ 23
IDSTATIC04 equ 24
IDSTATIC05 equ 25
IDSTATIC06 equ 26
IDSTATIC07 equ 27
IDSTATIC08 equ 28

.data 
DlgName      db "MyDialog",0 

szCurrentXY  db "当前鼠标位置是:%d.%d",0
szMsg        db "提示",0
szCheshi     db "当前的十六进制值是:%lx",0

szMouseLN    db "鼠标左键状态:关闭",0
szMouseLY    db "鼠标左键状态:开启",0

szMouseRN    db "鼠标右键状态:关闭",0
szMouseRY    db "鼠标右键状态:开启",0

szSHIFTNO    db " SHIFT键状态:关闭",0
szSHIFTYES   db " SHIFT键状态:开启",0

szCtrlNO     db " Ctrl键状态:关闭",0
szCtrlYES    db " Ctrl键状态:开启",0

szMouseCN    db "鼠标中键状态:关闭",0
szMouseCY    db "鼠标中键状态:开启",0

szXBUTTON1N   db "XBUTTON1状态:关闭",0
szXBUTTON1Y   db "XBUTTON1状态:开启",0

szXBUTTON2N   db "XBUTTON1状态:关闭",0
szXBUTTON2Y   db "XBUTTON1状态:开启",0
.data? 
hInstance HINSTANCE             ? 
.const 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code 
start:     
        invoke GetModuleHandle, NULL     
        mov    hInstance,eax     
        invoke DialogBoxParam, hInstance, ADDR DlgName,NULL, addr DlgProc, NULL     
        invoke ExitProcess,eax 
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 
        LOCAL @szBuffer[256]:byte 
        LOCAL @hX,@hY
       
        .if      uMsg == WM_INITDIALOG                 
                        invoke    LoadIcon,hInstance,ICO_MAIN           
                        invoke    SendMessage,hWnd,WM_SETICON,ICON_BIG,eax  

        .elseif uMsg == WM_MOUSEMOVE
                    
                    ;在 WM_MOUSEMOVE 消息发生时,同时来的wParam的值是32位的,其低16位的值是各种虚拟密钥的象征。
                    ;而同时来的lParam值里则是当前鼠标光标的X坐标和Y坐标。lParam是32位的,其低16位是X坐标值,而高16位则是Y坐标
                    ;比如你按下SHITE键时移动鼠标,其wParam的低16位会变成 00000100B
                    ;比如你按下Ctrl键时移动鼠标,其wParam的低16位会变成  00001000B  
                    ;比如你同时按下SHITE键和Ctrl键并移动鼠标,其wParam的低16位会变成  00001100B ,就是上面2个值的相加            
                    mov eax, wParam     ;判断鼠标左键是否关闭
                    and ax, 00000001B   ;按位逻辑与操作,即把ax的值的0位留下,就是从右向左数的第1位,就是这个1,其它位都置0先
                    .if ax ==      1B   
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC02,WM_SETTEXT,0,addr szMouseLY
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC02,WM_SETTEXT,0,addr szMouseLN    
                    .endif
                    
                    mov eax, wParam     ;判断鼠标右键是否关闭  
                    and ax, 00000010B
                    .if ax ==     10B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC03,WM_SETTEXT,0,addr szMouseRY
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC03,WM_SETTEXT,0,addr szMouseRN    
                    .endif
                    
                    mov eax, wParam     ;判断SHITE键是否关闭  
                    and ax, 00000100B
                    .if ax ==    100B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC04,WM_SETTEXT,0,addr szSHIFTYES
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC04,WM_SETTEXT,0,addr szSHIFTNO    
                    .endif
                                        
                    mov eax, wParam     ;判断Ctrl键是否关闭  
                    and ax, 00001000B
                    .if ax ==   1000B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC05,WM_SETTEXT,0,addr szCtrlYES
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC05,WM_SETTEXT,0,addr szCtrlNO    
                    .endif
                    
                    mov eax, wParam     ;判断鼠标中键是否关闭  
                    and ax, 00010000B
                    .if ax ==  10000B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC06,WM_SETTEXT,0,addr szMouseCY
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC06,WM_SETTEXT,0,addr szMouseCN    
                    .endif
                    
                    mov eax, wParam     ;判断XBUTTON1键是否关闭,就是高级鼠标的左侧键,一般鼠标没有  
                    and ax, 00100000B
                    .if ax == 100000B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC07,WM_SETTEXT,0,addr szXBUTTON1Y
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC07,WM_SETTEXT,0,addr szXBUTTON1N    
                    .endif
                    
                    mov eax, wParam     ;判断XBUTTON2键是否关闭,就是高级鼠标的右侧键,一般鼠标没有  
                    and ax,  01000000B
                    .if ax == 1000000B
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC08,WM_SETTEXT,0,addr szXBUTTON2Y
                    .else
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC08,WM_SETTEXT,0,addr szXBUTTON2N    
                    .endif
                    
                    ;以下开始取出lParam的低16位值和高16值,即鼠标的X坐标和Y坐标
                    mov eax, lParam
                    movzx eax,ax
                    mov @hX,eax
                    mov eax, lParam
                    shr eax,16
                    movzx eax,ax
                    mov @hY,eax
                    invoke  wsprintf,addr @szBuffer,addr szCurrentXY,@hX,@hY
                    invoke  SendDlgItemMessage,hWnd,IDSTATIC01,WM_SETTEXT,0,addr @szBuffer                                
        .elseif uMsg == WM_CLOSE                 
                        invoke EndDialog, hWnd,NULL         
        .else                
                mov eax,FALSE                 
                ret                 
        .endif                 
        mov eax,TRUE         
        ret 
DlgProc endp 

end start 

;下面为rc文件内容
#include "resource.h"              //提示缺少该文件,可以在资源里下载

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define ICO_MAIN    1000    //图标
#define IDSTATIC01  21 
#define IDSTATIC02  22 
#define IDSTATIC03  23
#define IDSTATIC04  24
#define IDSTATIC05  25
#define IDSTATIC06  26
#define IDSTATIC07  27
#define IDSTATIC08  28
 
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN    ICON        "Main.ico"

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

//定义对话框
MyDialog DIALOG 10, 10, 160, 170 
STYLE  DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK 
CAPTION "对话框程序模版"
FONT 12, "方正姚体"
BEGIN
     CONTROL "可以按着CTRL或SHIFT键移动鼠标试试", -1, "Static", WS_CHILD | WS_VISIBLE, 10, 10, 200, 10
     CONTROL "当前鼠标位置:", IDSTATIC01, "Static", WS_CHILD | WS_VISIBLE, 30, 30, 100, 10 
     CONTROL "鼠标左键状态:", IDSTATIC02, "Static", WS_CHILD | WS_VISIBLE, 30, 50, 100, 10
     CONTROL "鼠标右键状态:", IDSTATIC03, "Static", WS_CHILD | WS_VISIBLE, 30, 65, 100, 10
     CONTROL "SHIFT键状态:", IDSTATIC04, "Static", WS_CHILD | WS_VISIBLE, 30, 80, 100, 10
     CONTROL "Ctrl键状态:", IDSTATIC05, "Static", WS_CHILD | WS_VISIBLE, 30, 95, 100, 10
     CONTROL "鼠标中键状态:", IDSTATIC06, "Static", WS_CHILD | WS_VISIBLE, 30, 110, 100, 10
     CONTROL "XBUTTON1状态:", IDSTATIC07, "Static", WS_CHILD | WS_VISIBLE, 30, 125, 100, 10
     CONTROL "XBUTTON2状态:", IDSTATIC08, "Static", WS_CHILD | WS_VISIBLE, 30, 140, 100, 10
END 

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

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

相关文章:

  • 聊城 网站建设深圳 福田网站建设
  • 海外网站加速器下载爱站网收录
  • 谢岗网站仿做平面设计师磨刀石
  • 网站搜索引擎优化公司中国建设人才服务信息网官网
  • 营销型网站建设的指导原则wordpress 搜索分类
  • 专业SEO教程网站网站建设与管理就业前景
  • 外国排版网站昆明搜索引擎的关键词优化
  • 商务贸易网站建设临淄信息网港
  • 贵阳网站设计报价本地搭载wordpress
  • 南阳网站建设的公司如何自建一个便宜的网站
  • php网站建设案例教程电子邮箱免费注册
  • 网站设计中的技术分析建设银行网站怎么设置转账额度
  • 廊坊商昊网站建设网站设计制作要多少钱
  • 国内外网站网站广州自适应网站建设
  • 网站域名登陆地址网站用什么切版
  • 手机网站建设规范家教辅导培训网站建设
  • 网站制作公司哪家专业网站后台如何修改密码
  • 企业如何建设网站网站改标题降权
  • 淘宝做轮播广告哪个网站好徐州哪有做网站的
  • 齐河县建设局网站公众号做漫画网站
  • 韩国设计公司网站军事新闻
  • 门户网站如何运营装修设计方案
  • 网站建设对企业很重要安徽网站设计哪家效果好
  • 浦江网站建设怎么自己的电脑做网站服务器
  • 珠海网站建设工程管理咨询公司一般是做什么的
  • 常州网站建设公司教程外贸平台找外贸公司
  • 做网站之前需要准备什么软件百度seo培训班
  • flash网站设计温州网站建设制作设计公司
  • 用前端框架做自适应网站阿里云虚拟主机做多个网站
  • 临时网站怎么做怎样给网站做优化