-
-
[原创]把窗口化的DX魔兽变为全屏再画图
-
发表于:
2013-3-7 17:32
10055
-
好吧,其实我是为了挂才写的。
魔兽是DX8,全屏独占的,我当初想在这种情况下在界面上绘图,用了好多种方法都是闪烁的问题(D3D HOOK可以,但是需要修改内存),GDI不可能比DX快。
由于启动魔兽的时候可添加-window参数使得魔兽以窗口模式运行,只要把这个窗口模式变为全屏模式,然后创建一个透明窗口置顶蒙在上面,在窗口上面画图,就可以了。
1全屏
第一步,全屏需要隐藏任务栏(显示任务栏)。
BOOL HideTaskBar(BOOL Hide)
{
#ifndef ABM_SETSTATE
#define ABM_SETSTATE 0x0000000a
#endif
HWND hWnd = FindWindow("Shell_TrayWnd", NULL);
if(hWnd==NULL)
{
return FALSE;
}
int nCmdShow;
APPBARDATA apBar;
memset(&apBar,0,sizeof(apBar));
apBar.cbSize = sizeof(apBar);
apBar.hWnd =hWnd;
if(Hide)
{
nCmdShow=SW_HIDE;
apBar.lParam=ABS_AUTOHIDE;
}
else
{
nCmdShow=SW_SHOW;
apBar.lParam=ABS_ALWAYSONTOP;
}
SHAppBarMessage(ABM_SETSTATE,&apBar);
ShowWindow(hWnd,nCmdShow);
return TRUE;
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!