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

专业的深圳网站建设公司/安卓优化神器

专业的深圳网站建设公司,安卓优化神器,贵阳企业做网站,苏州企业网站建设公司只选亿企邦WPARAM 和 LPARAM wParam和lParam 这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数:一个是WORD类型的16位整型变量;另一个是LONG类型的32位整型变量。 因此根据匈牙利命名法,16位的变量就被命名为wParam, 32位的变…

WPARAM 和 LPARAM

  wParam和lParam 这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数:一个是WORD类型的16位整型变量;另一个是LONG类型的32位整型变量。

因此根据匈牙利命名法,16位的变量就被命名为wParam, 32位的变量就被命名为lParam。

  而到了Win32API中,原来的16位变量也被扩展为32位,因此此时wParam和lParam的大小完全相同

  区别及习惯用法:

  MS在使用时两种参数分别代表不同的含义和内容,WPARAM常常代表一些控件的ID或者高位低位组合起来分别表示鼠标的位置,如果消息的发送者需要将某种结构的指针或者是某种类型的句柄时,习惯上用LPARAM来传递。除此之外,一般我们使用LPARAM传递地址,而WPARAM传递其他参数。

  在自定义消息中调用SendMessage()函数时,第二个参数是WPARAM,第三个参数是这个消息的LPARAM,但是你在程序中某个类中写下ON_MESSAGE()宏来处理这个消息时,处理函数SomeHandler(WPARAM,LPRAM(默认是0))中解释这两个参数时必须按照SendMessage调用中的意义来进行。

 

SendMessage和PostMessage:

  SendMessage:调用系统的消息处理函数对发送的消息进行处理,等待消息处理完成,该函数返回。

  PostMessage:将需要处理的消息发送到系统消息处理队列中,然后返回。系统会将插入的消息当一般消息来处理。

  详情:SendMessage、PostMessage原理

 

  SendMessage缺点:

  如果在线程中使用了SendMessage,在对话框主线程中发出了结束该线程的消息(比如SetEvent),然后WaitForSingleObject等待该线程退出。这时对话框线程已被阻塞在这里等待线程退出。同时,线程内由于使用了SendMessage也在等待主线程接收消息后返回。这时,两边都在等待,程序就“死锁”了,永远也退出不了了。

  PostMessage缺点:

  PostMessage中传递字符串指针时要注意,一般在SendMessage中不出错,换到PostMessage中就出现内存错误了,那是因为SendMessage会等待消息返回,也就是目标线程收到消息时,该字符串仍存在。但是PostMessage就不一定了,可能目标线程收到消息时,字符串已经被销毁了。 

引用:线程中慎用SendMessage和PostMessage

 

  SendMessageTimeout:

  向窗口发送一条消息。如窗口位于不同的线程中,则利用这个函数可以指定一个超时值,以便在另一个进程挂起的时候防止调用进程也永远挂起。该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,并且,如果指定的窗口属于不同的线程,直到窗口程序处理完消息或指定的超时周期结束函数才返回。如果接收消息的窗口和当前线程属于同一个队列,窗口程序立即调用,超时值无用。

  针对以上两个函数的缺点,使用SendMessageTimeout是一个相对折中的办法。但是具体情况是还是看需求是偏重与哪一方面而具体选择。

  函数原型:

LRESULT SendMessageTimeout(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM IParam,UINTfuFlags,UIUT uTimeout,LPDWORD lpdwResultult)

  参数 类型及说明:

hwnd Long,要接收消息的一个窗口的句柄 
msg Long,消息的标识符 
wParam Long,由消息决定 
lParam Long,由消息决定 
fuFlags Long,下述常数的一个或多个 
  SMTO_ABORTIFHUNG 如目标进程挂起,则函数立即返回 
  SMTO_BLOCK 除非函数返回,否则调用线程不能处理消息 
  SMTO_NORMAL 允许调用线程处理消息,同时保持函数继续执行 
uTimeout Long,超时值,采用毫秒为单位 
lpdwResult Long,用于装载函数结果的一个变量

转载于:https://www.cnblogs.com/skywatcher/p/3506228.html

http://www.lbrq.cn/news/1359289.html

相关文章:

  • 哪个网站能在家做兼职/免费快速网站
  • 承德网站制作加盟/免费找客户软件
  • 找别人做的网站问什么域名解析后还是上线不/最新发布的最新
  • 达州网站制作/seo 优化教程
  • eclipse sdk做网站/微信做单30元一单
  • 上海 网站工作室/广州seo招聘网
  • 如何推广个人网站/广州网站优化软件
  • 建设168网站/疫情防控最新通告
  • 微商城新零售app/上海优化网站seo公司
  • 车票在线制作网站/怎么做百度推广运营
  • 政府网站建设的基本流程/关键词优化需要从哪些方面开展
  • 禅城区做网站策划/今天的三个新闻
  • 济南网站制作套餐/大连seo网站推广
  • 最专业的礼品网站案例参考/免费创建个人网页
  • 做政府门户网站建设/江苏网站seo设计
  • 北京网站建设有哪些/关键词排名优化易下拉技术
  • 做企业网站需要人维护么/前端seo主要优化哪些
  • 长春市做网站/域名权重
  • 网站建设自评报告/网络推广网站推广
  • 小白自己做网站/域名邮箱 400电话
  • 网站设置支付宝在线支付/官网百度
  • 企业官方网站地址/seo推广百度百科
  • 香港做指数的网站/贵州seo和网络推广
  • 品牌网站建设k小蝌蚪/商品推广软文写作500字
  • 新乡做网站公司电话/百度竞价排名机制
  • 贵阳专业做网站/开发定制软件公司
  • 广西汽车网网站建设/搜索引擎登录入口
  • 做软件常用的网站有哪些/上海抖音seo公司
  • 网站文章做排名/百度识图鉴你所见
  • winforms做网站/静态网站开发
  • Leetcode-2080区间内查询数字的频率
  • 【图像算法 - 09】基于深度学习的烟雾检测:从算法原理到工程实现,完整实战指南
  • linux定时器管理 timer_*系统调用及示例
  • 每日五个pyecharts可视化图表-bars(4)
  • JVM(Java Virtual Machine,Java 虚拟机)超详细总结
  • 【Linux】System V - 基于建造者模式的信号量