如何让程序总在最外层显示

bjnw 2005-03-15 09:16:41
各位高人:
一事请教!
如何让自己的程序总在最外层显示?包括在DIRECTX写的游戏中,总浮在最表面。可以不响应鼠标和键盘消息。是不是得需要对显卡直接编程了?或有没有其他解决办法?分不够可再加! 急。
...全文
126 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
QunKangLi 2005-03-15
  • 打赏
  • 举报
回复
CRect rect( 0, 0, size.cx, size.cy ) ;
return CWnd::CreateEx(
WS_EX_TOPMOST,
AfxRegisterWndClass(0, AfxGetApp()->LoadStandardCursor(IDC_ARROW)),
NULL, WS_POPUP | WS_VISIBLE, 0, 0, size.cx, size.cy, pParentWnd->GetSafeHwnd(), NULL);
llmsn 2005-03-15
  • 打赏
  • 举报
回复
不是有一个这样的窗口属性吗,看WINDOWS程序设计时好像见过,不过现在忘了.
bjnw 2005-03-15
  • 打赏
  • 举报
回复
QunKangLi:
谢谢
我在创建窗口时加上了WS_EX_TOPMOST属性.可是并没有办法是程序总在最外层显示.
我的意思是自己写的程序窗体在所有程序最外层,包括你用鼠标去点击后面的应用程序.
QunKangLi 2005-03-15
  • 打赏
  • 举报
回复
普通程序可以用 ::SetWindowPos( hWnd, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOMOVE | SWP_NOSIZE ) ;或是在建立窗口时加上WS_EX_TOPMOST扩展属性
bjnw 2005-03-15
  • 打赏
  • 举报
回复
谢谢pomelowu
自己的窗口要在最顶层,又要处于正常运行状态.
我不知道在自己的程序下有何种游戏在运行,所以怎么能用代码去激活一个不确定的程序呢?
不知道有哪位听说过显卡的覆盖层技术?
pomelowu 2005-03-15
  • 打赏
  • 举报
回复
我是指在资源视图中设定对话框的System Modal属性。

你的意思是不是自己的窗口既要在最顶上,又不要处于激活状态?
通过前面的办法让窗口“总在最前”之后,激活游戏窗口即可:
HWND hwnd = FindWindow(NULL, TEXT("My Game"));
BringWindowToTop(hwnd);
bjnw 2005-03-15
  • 打赏
  • 举报
回复
先谢谢大家!
不过好像大家没明白我的意思. 我是说我需要让自己的程序窗体总在最外层显示,更重要的是不能妨碍其它应用程序的运行.例如 金山游侠可以在游戏的全屏状态下显示出来,但此时它会阻断游戏的运行(游戏还是在全屏下正常运行,而自己的程序覆盖在游戏上也可运行,可以不响应对自己程序的鼠标键盘操作).这是不能接受的.还有 pomelowu 你的意思我不大明白,能否详细点?
pomelowu 2005-03-15
  • 打赏
  • 举报
回复
System Modal属性,在资源view中选定
或者用SetWindowPos

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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