全屏游戏窗口化

angel_sha 2003-12-12 08:25:42
基于DIRECTX全屏游戏如何窗口化?望高手指点!!!
...全文
160 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
甜而不腻 2004-01-13
  • 打赏
  • 举报
回复
顶一下。
angel_sha 2003-12-27
  • 打赏
  • 举报
回复
我说的是让其他全屏的游戏窗口化呀

其实我也是认为拦截到SetCooperativeLevel函数就已经差不多了,可是该怎么拦这个函数呢
拦截API还是很容易的,可是怎样拦截DDRAW.DLL中的函数?望指教!!
LunTanZeng 2003-12-13
  • 打赏
  • 举报
回复
UPUP

GZing
rainstormmaster 2003-12-13
  • 打赏
  • 举报
回复
同意 wuyuesisi(斯斯) 的意见
踏平扶桑 2003-12-13
  • 打赏
  • 举报
回复
up
wuyuesisi 2003-12-12
  • 打赏
  • 举报
回复
好象这个问题不该在这里提吧??
可以通过反汇编找到DirectDrawCreate函数的入口点,然后设断。
中断后返回领空再跟踪。
设置协调模式的函数原型是 SetCooperativeLevel,:PTR IDirectDraw,:HWND hWnd,:DWORD dwFlags
关键是第三个参数它有如下取值
DDSCL_EXCLUSIVE 独占模式,此模式必须与 DDSCL_FULLSCREEN连用
DDSCL_FULLSCREEN 全屏模式
DDSCL_NORMAL 普通模式,也就是我们所说的窗口模式,此模式不能与DDSCL_EXCLUSIVE 或DDSCL_FULLSCREEN连用
DDSCL_NOWINDOWCHANGES DirectDraw不允许改变窗体的大小
一般来说全屏模式下dwFlags的值是 DDSCL_EXCLUSIVE or DDSCL_FULLSCREEN
要改的只是把这个参数的值改为DDSCL_NORMAL。
具体取值如下
#define DDSCL_EXCLUSIVE 10h
#define DDSCL_FULLSCREE 1h
#define DDSCL_NORMAL 8h
#define DDSCL_NOWINDOWCHANGES 4h
汇编和调试器使用的必要。






743

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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