• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2022-05-23 21:12 Aet 隐藏边栏 |   抢沙发  9 
文章评分 2 次,平均分 5.0

有窗口句柄的子窗口

IRealWndHandler

实现

xml

消息响应

  1. 由于真窗口是SOUI主窗口的子窗口,因此真窗口的消息可以在SOUI主窗口的消息映射表中处理。

注意

  1. 有真窗口时,SOUI主窗口不能设置translucent="1",因为任何子窗口在半透明窗口上都不能正常显示。

定时器

  1. 低24位用来存储SWindow的窗口ID(swnd)。
  2. 高8位中保留最高位设置为1,用来区别直接使用::SetTimer创建的定时器(不可以把最高位置1)。
  3. 剩下7位用于SWindow中作为定时器ID。因此在SOUI中,一个SWindow最多可以创建0-127个定时器。

响应

32位定时器

响应32位定时器

注意

  1. 前面两种定时器都是在控件开发的时候使用定时器的方法。
  2. 在应用层,可以为宿主窗口直接使用::SetTimer或者宿主窗口的基类:CSimpleWnd::SetTimer来创建定时器(注意最高位必须是0)。
    1. 在响应这类定时器时,一样可以在宿主窗口的消息映射表中使用MSG_WM_TIMER来响应定时器消息。
    2. 需要注意的是,这个映射宏会截获所有分发给宿主窗口的定时器,如果不是自己创建的定时器,则需要继续交给基类处理。
    3. 可以调用:SetMsgHandled(FALSE); 或者:SHostWnd::OnTimer(UINT_PTR idEvent);实现。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享