100分求教:如何在运行全屏游戏的时候,显示消息,而不使游戏切换出去

pbdwadr 2009-03-10 04:42:17
标题估计看不明白,我解释一下:

大家都去过网吧。基本每个网吧都有这样的管理软件,每天快吃饭的时候,服务员都能发送消息:晚饭时间已到,需要点饭的同学请到柜台来点!!

这个消息很高级,不管你是在玩魔兽还是在看电影,他都不会影响你,不会使你切换出来。
而且还有一个高级的地方:你只需鼠标悬停在上面3秒钟,他就会自动关闭消失了。

不知道说明白了没?

哪位大侠能指教一下,这个是怎么做的?用什么原理?
希望能尽量说明白一点。

请多多指教~
...全文
616 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjj67868236 2012-07-14
  • 打赏
  • 举报
回复
fraps显示帧率的那个软件,也可以在游戏中显示信息呀,不知道那软件怎么做的
zjj67868236 2012-07-14
  • 打赏
  • 举报
回复
楼主,你实现这个功能了吗?我也需要呀
jay-1 2011-03-23
  • 打赏
  • 举报
回复
说得跟说天书一样,没一个实现的。
jay-1 2011-03-23
  • 打赏
  • 举报
回复
说得跟说天书一样,你一个实现的。
pbdwadr 2009-03-11
  • 打赏
  • 举报
回复
我说下难点:
1.假如玩家在玩魔兽争霸,这种游戏都是用到DirectX,游戏每秒刷新几十次,显然不能用传统的GDI
2.假如真的就这么简单,什么设置窗口属性为TopMost就可以了,那么为什么好多人都费劲心思用什么钩子呢?
希望不要为了分数而回答问题,至少要有类似的成功经验,如果凭借猜想回答,还不如直接说“我不知道”
pbdwadr 2009-03-11
  • 打赏
  • 举报
回复
大道理谁都会说。。。这个问题真的这么简单吗?
自己都没试过怎么去指导别人?
那是瞎指挥
NineheadedBird 2009-03-11
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 pbdwadr 的回复:]
由于大家都在空谈,没人能做出个示例,我决定,不结贴。。。
[/Quote]
典型的要鱼 不学渔的 很好 很强大
cnzdgs 2009-03-11
  • 打赏
  • 举报
回复
我决定不再“空谈”LZ的问题。。。
pbdwadr 2009-03-11
  • 打赏
  • 举报
回复
由于大家都在空谈,没人能做出个示例,我决定,不结贴。。。
elmnd 2009-03-10
  • 打赏
  • 举报
回复
多线程, 切换窗口句柄。其他的俺不懂, 帮顶!
coyer 2009-03-10
  • 打赏
  • 举报
回复
没做过,不过看原理,应该不是很复杂。

自动关闭这个很简单,只要检测到鼠标进入窗口就开始记时间,时间到了,窗口关闭就好。

窗口在最顶层,并且不影响的可能稍微麻烦一点。

HWND的创建属性中有 WS_EX_TOPMOST 属性,应该可是使窗口显示在所有 窗口的最顶端。显示时候不切换焦点是有 INACTIVE属性的,这个我以前做过,是可以做到的。
  • 打赏
  • 举报
回复
先试着做一下
WillyWonka 2009-03-10
  • 打赏
  • 举报
回复
MARK
zteclx 2009-03-10
  • 打赏
  • 举报
回复
应该不复杂,设置当前窗口在最前面就可以了吧。
zgl7903 2009-03-10
  • 打赏
  • 举报
回复
RECT rScreen;
hDC = CreateDC("DISPLAY",NULL,NULL,NULL);
// 使用hDC绘制
DeleteDC(hDC);
cnzdgs 2009-03-10
  • 打赏
  • 举报
回复
做法并不复杂,自己试试吧,有问题再说。
cnzdgs 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 pbdwadr 的回复:]
cnzdgs:这样估计会使游戏最小化吧?就像讨厌的QQ视频消息一样,游戏马上就被切换出去了!
[/Quote]
不会。
allright1199 2009-03-10
  • 打赏
  • 举报
回复
很有意思,关注
pbdwadr 2009-03-10
  • 打赏
  • 举报
回复
mxw0922:不知道什么是异步消息
TeaTimeL:没这么简单吧?你试过吗?而且是对所有游戏,或者电影,主要是要全屏情况下不使用户当前游戏切换出来。
oyljerry:一定要用钩子吗?
kaer_zhong:我想你误解我的意思了,我并不是问怎么通信的,而是如何在全屏游戏中显示一个消息而已,而且是对所有的游戏,包括单机游戏。。。
cnzdgs:这样估计会使游戏最小化吧?就像讨厌的QQ视频消息一样,游戏马上就被切换出去了!



谁能给我写个例子吗?只要简单的实现:当我按下F2的时候,对所有的全屏游戏或电影,能在不使游戏或电影退出全屏模式,也不最小化的情况下,发送一个文字提示消息“123”

再次感谢!
cnzdgs 2009-03-10
  • 打赏
  • 举报
回复
创建一个窗口(用对话框即可),初始化时设置为WS_EX_NOACTIVATE扩展风格(0x08000000),并用SetTimer定时,然后显示并设置为TopMost窗口,响应WM_TIMER消息判断鼠标位置,达到一定时候后给自己发送WM_CLOSE消息关闭。也可以用TrackMouseEvent和WM_MOUSEHOVER消息而不用定时。
加载更多回复(7)

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧