应该如何做呢?我做了一个键盘钩子 处理消息时加入以下代码
long Style;
long exstyle;
DEVMODE devmode;
devmode.dmPelsWidth=1024;
devmode.dmPelsHeight=768;
devmode.dmBitsPerPel=16;
devmode.dmDisplayFrequency=75;
ChangeDisplaySettings(&devmode,0);
pWnd=(HWND)FindWindow(NULL,"NAME");
Style=GetWindowLong(pWnd, GWL_STYLE);
Style=Style | WS_CAPTION;
SetWindowLong(pWnd, GWL_STYLE, Style);
exstyle=GetWindowLong(pWnd,GWL_EXSTYLE);
exstyle=exstyle | WS_EX_APPWINDOW | WS_EX_OVERLAPPEDWINDOW;
SetWindowLong(pWnd,GWL_EXSTYLE,exstyle);
SetWindowPos(pWnd,HWND_NOTOPMOST,0,0,800,600,SWP_SHOWWINDOW);
ShowWindow(pWnd,SW_SHOWNORMAL);程序的窗口确实有了标题栏,但分辨率依然是程序默认的800,600 颜色也不对,好像是256色请教高手,应该怎么样做呢?
long Style;
long exstyle;
DEVMODE devmode;
devmode.dmPelsWidth=1024;
devmode.dmPelsHeight=768;
devmode.dmBitsPerPel=16;
devmode.dmDisplayFrequency=75;
ChangeDisplaySettings(&devmode,0);
pWnd=(HWND)FindWindow(NULL,"NAME");
Style=GetWindowLong(pWnd, GWL_STYLE);
Style=Style | WS_CAPTION;
SetWindowLong(pWnd, GWL_STYLE, Style);
exstyle=GetWindowLong(pWnd,GWL_EXSTYLE);
exstyle=exstyle | WS_EX_APPWINDOW | WS_EX_OVERLAPPEDWINDOW;
SetWindowLong(pWnd,GWL_EXSTYLE,exstyle);
SetWindowPos(pWnd,HWND_NOTOPMOST,0,0,800,600,SWP_SHOWWINDOW);
ShowWindow(pWnd,SW_SHOWNORMAL);程序的窗口确实有了标题栏,但分辨率依然是程序默认的800,600 颜色也不对,好像是256色请教高手,应该怎么样做呢?
DEVMODE devmode;
ZeroMemory(&devmode,sizeof(devmode));
devmode.dmSize=sizeof(DEVMODE);
devmode.dmPelsWidth=1024;
devmode.dmPelsHeight=768;
devmode.dmBitsPerPel=16;
devmode.dmDisplayFrequency=75;
ChangeDisplaySettings(&devmode,0);
但一个新的问题被HOOK的程序画面没有了,这是为什么呢???
不明白,因为不清楚你的代码是怎么写的。
{//按HOME
BOOL bKeyUp = lParam & (1 << 31);
if (bKeyUp && wParam == VK_HOME && nCode == HC_ACTION)
{
long Style;
long exstyle;
DEVMODE devmode;
ZeroMemory(&devmode,sizeof(devmode));
devmode.dmSize=sizeof(DEVMODE);
devmode.dmPelsWidth=800;
devmode.dmPelsHeight=600;
devmode.dmBitsPerPel=16;
devmode.dmDisplayFrequency=75;
pWnd=(HWND)FindWindow(NULL,"name");
Style=GetWindowLong(pWnd, GWL_STYLE);
Style=Style | WS_CAPTION;
SetWindowLong(pWnd, GWL_STYLE, Style);
exstyle=GetWindowLong(pWnd,GWL_EXSTYLE);
exstyle=exstyle | WS_EX_APPWINDOW | WS_EX_OVERLAPPEDWINDOW;
SetWindowLong(pWnd,GWL_EXSTYLE,exstyle);
SetWindowPos(pWnd,HWND_NOTOPMOST,0,0,800,600,SWP_SHOWWINDOW);
ShowWindow(pWnd,SW_SHOWNORMAL);//修改窗体的回调函数地址到我们自己定义的回调函数
ChangeDisplaySettings(&devmode,0);
}
else
{
pCWndWGMain->ShowWindow(pCWndWGMain->IsWindowVisible() ? SW_HIDE : SW_SHOW);
}
return ::CallNextHookEx(g_hhook, nCode, wParam ,lParam);
}就这一段代码 ,别的没拉