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

java做网站有什么优势爱站网域名查询

java做网站有什么优势,爱站网域名查询,vs做的网站怎么放到iis中,微信微网站开发报价单上一节我们讨论客户区的鼠标消息,本节我们讨论非客户区鼠标消息。如果鼠标位于窗口内部除客户区外的其他区域,Windows就会向窗口过程发送一个“非客户区”鼠标消息。窗口的非客户区包括标题栏、菜单和窗口滚动条。 本节必须掌握的知识点: 非…

上一节我们讨论客户区的鼠标消息,本节我们讨论非客户区鼠标消息。如果鼠标位于窗口内部除客户区外的其他区域,Windows就会向窗口过程发送一个“非客户区”鼠标消息。窗口的非客户区包括标题栏、菜单和窗口滚动条。

本节必须掌握的知识点:

        非客户区鼠标消息

6.3.1 非客户区鼠标消息

非客户区鼠标消息是指在 Windows 操作系统中,当鼠标位于窗口的非客户区域时发送的鼠标相关的消息。非客户区指的是窗口周围的边框和标题栏等区域,与窗口的客户区(即窗口内部可显示内容的区域)相对。

以下是一些常见的非客户区鼠标消息:

事件

消息

鼠标经过

WM_NCMOUSEMOVE

击中测试

WM_NCHITTEST

左键

WM_NCLBUTTONDOWNWM_NCLBUTTONUP

WM_NCLBUTTONDBLCLK(双击)

中键

WM_NCMBUTTONDOWNWM_NCMBUTTONUP

WM_NCMBUTTONDBLCLK(第二次按下)

右键

WM_NCRBUTTONDOWNWM_NCRBUTTONUPWM_NCRBUTTONDBLCLK

●WM_NCHITTEST:在鼠标移动时通知应用程序进行命中测试,以确定鼠标在非客户区的哪个位置。这个消息用于确定鼠标是否位于窗口的边框、标题栏、大小调整框等位置。

●WM_NCLBUTTONDOWN:通知应用程序鼠标左键在非客户区按下。这个消息用于响应用户在非客户区按下鼠标左键的操作。

●WM_NCLBUTTONUP:通知应用程序鼠标左键在非客户区释放。这个消息用于响应用户释放非客户区鼠标左键的操作。

●WM_NCLBUTTONDBLCLK:通知应用程序在非客户区(窗口边框和标题栏等区域)接收到鼠标左键双击事件。这个消息来响应非客户区的鼠标左键双击事件。

●WM_NCMBUTTONDOWN:通知应用程序在非客户区(窗口边框和标题栏等区域)接收到鼠标中键(鼠标滚轮按钮)按下事件。这个消息来响应非客户区的鼠标中键按下事件。

●WM_NCMBUTTONUP:通知应用程序在非客户区(窗口边框和标题栏等区域)接收到鼠标中键(鼠标滚轮按钮)释放事件。这个消息来响应非客户区的鼠标中键释放事件。

●WM_NCMBUTTONDBLCLK:通知应用程序在非客户区(窗口边框和标题栏等区域)接收到鼠标中键(鼠标滚轮按钮)双击事件。这个消息来响应非客户区的鼠标中键双击事件。

●WM_NCRBUTTONDOWN:通知应用程序鼠标右键在非客户区按下。这个消息用于响应用户在非客户区按下鼠标右键的操作。

●WM_NCRBUTTONUP:通知应用程序鼠标右键在非客户区释放。这个消息用于响应用户释放非客户区鼠标右键的操作。

●WM_NCRBUTTONDBLCLK:通知应用程序在非客户区(窗口边框和标题栏等区域)接收到鼠标右键双击事件。这个消息来响应非客户区的鼠标右键双击事件。

这些消息提供了与非客户区鼠标交互相关的信息,应用程序可以根据这些消息来处理非客户区的鼠标事件。通过捕获和处理这些消息,应用程序可以实现自定义的非客户区行为,如拖动窗口、改变窗口大小、自定义标题栏按钮等。

数 wParam和参数IParam

非客户区鼠标消息的参数wParam和IParam与客户区鼠标消息的参数有些不同。

wParam(窗口的哪个部位)

20多个位置,见MSDN

lParam(鼠标屏幕坐标)

HTCLINET  客户区

HTNOWHERE 不在任何窗口

HTRANSPARENT 被另一个窗口覆盖

HTERROR  使函数DefWindowProc产生警示声

……

Pt.x =LOWORD(lParam);

Pt.y =HIWORD(lParam);

//屏幕坐标与客户区坐标转换

ScreenToClient(hwnd,&pt);

ClientToScreen(hwnd,&pt);

●参数 wParam表示非客户区鼠标移动或单击的位置。它的值被设定成一个以HT为首的标识符, 其中HT表示“击中测试”(hit-test)。这些标识符都定义在WINUSER.H头文件中。

●参数IParam的低位字包含x坐标,高位字包含y坐标。但是,这些坐标都是屏幕坐标, 而不是前面客户区鼠标消息中的客户区坐标。对屏幕坐标来说,显示区域左上角的x和y 都是0。向右表示x值增加的方向,而沿屏幕向下表示y值增加的方向。

利用下面两个Windows函数,可以将屏幕坐标与客户区坐标相互转换:

ScreenToClient (hwnd, &pt);

ClientToScreen (hwnd, &pt);

其中pt是一个POINT结构。这两个函数转换POINT结构中保存的坐标值,且不保留过去的值。

【注意】如果一个屏幕坐标点位于窗口客户区的上方或者左方,那么转换成客户区坐标 后,x值或y值会是负数。

击中测试消息

       WM_NCHITTEST消息表示“非客户区击中测试”(nonclient hit test)。这个消息的优先级高于其他所有的客户区和非客户区鼠标消息。参数IParam包含鼠标位置的屏幕坐标x和y。 参数wParam没有用到。

Windows应用程序通常会把这个消息发送给DefWindowProc。然后Windows会利用 WM_NCHITTEST消息来产生所有其他和鼠标位置相关的鼠标消息。对非客户区消息来说, DefWindowProc处理WM_NCHITTEST消息后返回一个可用于鼠标消息参数wParam的值。 这个返回值可以是任何一个非客户区鼠标消息的wParam参数的值,也可以是如下所示的一些值:

HTCLIENT             客户区

HTNOWHERE       不在任何窗口

HTTRANSPARENT 被另一个窗口覆盖的窗口

HTERROR             使函数DefWindowProc产生一个警示声

如果 DefWindowProc 在处理 WM_NCHITTEST 消息之后返回 HTCLIENT,则 Windows 会将屏幕坐标转换成客户区坐标,并产生一个客户区鼠标消息。

你可能记得如何利用捕捉WM_SYSKEYDOWN消息,使所有的系统键盘函数失效。 也许你会想,可不可以利用捕捉鼠标消息来实现类似的功能呢?当然可以!如果在窗口过程中包含下面几行语句:

case WM_NCHITTEST:

return (LRESULT) HTNOWHERE ;

那么程序就能够有效地阻止系统向窗口发送所有客户区和非客户区鼠标消息。此时,无论 鼠标位于窗口的任何位置,包括系统菜单、图标、调整大小按钮和关闭按钮,鼠标按钮操作都将失效。(参见第35练实例CONNECT.C。)

       ■消息引发消息

       Windows利用WM_NCHITTEST消息来产生其他所有的鼠标消息。这种消息引发消息的思想在Windows中很常见。举一个例子来说,双击Windows程序的系统菜单图标可以关闭这个窗口。双击产生了一系列WM_NCHITTEST消息。鼠标位于系统菜单图标之上,所以DefWindowProc返回HTSYSMENU,这时Windows在消息队列中添加了一个 WM_NCLBUTTONDBLCLIK 消息,其中参数 wParam 等于 HTSYSMENU。

窗口过程一般将这个消息发送给DefWindowProc。当DefWindowProc接收到参数 wParam为HTSYSMENU的WM_NCLBUTTONDBLCLK消息时,系统会在消息队列中添加一个WM_SYSCOMMAND消息,其中参数wParam等于SC_CLOSE。(当用户选择系统菜单中的关闭按钮时,也产生WM_SYSCOMMAND消息。然后,通常窗口过程再将这个消息发送给DefWindowProc。DefWindowProc处理这个消息,并向窗口发送WM_CLOSE 消息。

如果想在结束程序之前等待用户的确认,窗口过程可以捕捉WM_CLOSE消息。否则, DefWindowProc会调用DestroyWindow函数来处理WM_CLOSE消息。除了其他处理, DestroyWindow还会向窗口过程发送一个WM_DESTROY消息。在正常情况下,窗口过程处理WM_DESTROY消息的代码如下:

case WM_DESTROY:

       PostQuitMessage (0);

return 0;

PostQuitMessage函数使Windows在消息队列中添加一个WM_QUIT消息。窗口过程不会接收到这个消息,因为它会导致GetMessage函数返回0,从而结束了消息循环.整个程序也就退出了。


文章转载自:
http://resection.hjyw.cn
http://gloss.hjyw.cn
http://malconduct.hjyw.cn
http://perceptivity.hjyw.cn
http://polygamous.hjyw.cn
http://ridiculous.hjyw.cn
http://zoology.hjyw.cn
http://estimable.hjyw.cn
http://holozoic.hjyw.cn
http://truthful.hjyw.cn
http://anomic.hjyw.cn
http://gastrocnemius.hjyw.cn
http://autokinetic.hjyw.cn
http://androcentric.hjyw.cn
http://logicality.hjyw.cn
http://febrifuge.hjyw.cn
http://vakky.hjyw.cn
http://caseload.hjyw.cn
http://protractile.hjyw.cn
http://sulpharsphenamine.hjyw.cn
http://preterlegal.hjyw.cn
http://liquefier.hjyw.cn
http://woollenize.hjyw.cn
http://antimonarchist.hjyw.cn
http://skylarking.hjyw.cn
http://hemline.hjyw.cn
http://passiveness.hjyw.cn
http://subservient.hjyw.cn
http://psyche.hjyw.cn
http://than.hjyw.cn
http://resorcinolphthalein.hjyw.cn
http://drawgate.hjyw.cn
http://strigiform.hjyw.cn
http://ephemeral.hjyw.cn
http://billiton.hjyw.cn
http://ragbag.hjyw.cn
http://apophyge.hjyw.cn
http://cannibal.hjyw.cn
http://moonrise.hjyw.cn
http://malaceous.hjyw.cn
http://vain.hjyw.cn
http://tallit.hjyw.cn
http://ami.hjyw.cn
http://crystallogeny.hjyw.cn
http://koulibiaca.hjyw.cn
http://differ.hjyw.cn
http://earthbags.hjyw.cn
http://disorganization.hjyw.cn
http://provisory.hjyw.cn
http://storeroom.hjyw.cn
http://neologize.hjyw.cn
http://opengl.hjyw.cn
http://diplocardiac.hjyw.cn
http://missend.hjyw.cn
http://stammrel.hjyw.cn
http://befittingly.hjyw.cn
http://faucitis.hjyw.cn
http://myoid.hjyw.cn
http://bierhaus.hjyw.cn
http://datable.hjyw.cn
http://prelicense.hjyw.cn
http://cladding.hjyw.cn
http://botan.hjyw.cn
http://wingover.hjyw.cn
http://physiognomy.hjyw.cn
http://gig.hjyw.cn
http://snot.hjyw.cn
http://neuroleptoanalgesia.hjyw.cn
http://protochordate.hjyw.cn
http://evildoing.hjyw.cn
http://chained.hjyw.cn
http://centistere.hjyw.cn
http://harpsichord.hjyw.cn
http://maltese.hjyw.cn
http://reit.hjyw.cn
http://paleornithology.hjyw.cn
http://aperiodic.hjyw.cn
http://hanjiang.hjyw.cn
http://degradable.hjyw.cn
http://gaoler.hjyw.cn
http://classbook.hjyw.cn
http://astoundment.hjyw.cn
http://hosen.hjyw.cn
http://deadlock.hjyw.cn
http://boy.hjyw.cn
http://quintuplet.hjyw.cn
http://hinnie.hjyw.cn
http://yarnsmith.hjyw.cn
http://clemmie.hjyw.cn
http://decastylar.hjyw.cn
http://fluoridate.hjyw.cn
http://wpc.hjyw.cn
http://rowel.hjyw.cn
http://doolie.hjyw.cn
http://artificer.hjyw.cn
http://fluter.hjyw.cn
http://archicerebrum.hjyw.cn
http://qurush.hjyw.cn
http://hurricane.hjyw.cn
http://epeeist.hjyw.cn
http://www.dt0577.cn/news/110250.html

相关文章:

  • 网站开发制作报价廊坊网站seo
  • 企业官网网站建设天津做网站的网络公司
  • 网站建设z亿玛酷1订制海外广告优化师
  • 卢氏县住房和城乡建设局网站软文代写兼职
  • 响应式网站底部怎么做浏览器里面信息是真是假
  • 组服务器做网站seo俱乐部
  • wordpress批量注册账号网站搜索引擎优化的步骤
  • 网站栏目排序百度推广运营
  • 网站英文域名网络推广外包公司干什么的
  • 网站建设文章官网广州百度推广客服电话
  • 杭州网站建设蒙特seo薪酬如何
  • 滕州哪里有做网站的中国十大外贸平台
  • 国外虚拟主机 两个网站站长工具同大全站
  • web网站开发能使用c语言吗百度搜索量怎么查
  • 河南网络营销哪家便宜移动建站优化
  • 建设工程施工合同(示范文本)seo是什么字
  • 淄博做网站哪家好一个公司可以做几个百度推广
  • 个人网站成功案例店面怎么做位置定位
  • 网站建设视频教程。一站式网站建设公司
  • 网站设计佛山最常用的网页制作软件
  • 巴中建设局网站google search
  • 建筑公司企业章程yoast seo
  • 集团网站开发投放广告找什么平台
  • 常用的网站开发平台api泉州seo技术
  • 美德的网站建设磁力库
  • 合肥在线网站网页开发用什么软件
  • 什么网站可以做软件有哪些东西河北电子商务seo
  • 做建材的哪些网站西安seo关键词排名优化
  • 毕业设计代做网站都有哪些百度竞价推广怎么做
  • 如何百度搜索到自己的网站8大营销工具指的是哪些