您当前的位置: 首页 >  c++

插件开发

暂无认证

  • 1浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Win32-C++-窗口隐藏-修改窗口过程函数

插件开发 发布时间:2022-06-29 09:10:09 ,浏览量:1

文章目录
    • 1.程序代码
    • 2.作者答疑

1.程序代码

  如果需要修改窗口程序使其隐藏,可以采用如下代码:

void HideWindow(HWND hDlgWnd)
{
	//隐藏窗口
	WINDOWPLACEMENT   wp;
	wp.length = sizeof(WINDOWPLACEMENT);
	wp.flags = WPF_RESTORETOMAXIMIZED;
	wp.showCmd = SW_HIDE;
	::SetWindowPlacement(hDlgWnd, &wp);

	//或者
	::SetWindowLong(hDlgWnd, GWL_STYLE, GetWindowLong(hDlgWnd, GWL_STYLE) &~WS_EX_TOPMOST);
	::SetWindowPos(hDlgWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE);
}

  修改窗口过程函数,源码如下所示:

//修改窗口过程函数
#include 
LONG OldWndProc = 0;
LRESULT CALLBACK WindowProcNew(HWND hWnd,      // handle to window
	UINT uMsg,      // message identifier
	WPARAM wParam,  // first message parameter
	LPARAM lParam   // second message parameter
	)
{
	if (uMsg == 0x036A)//WM_KICKIDLE
	{		
		Process();
	}

	if (uMsg==WM_USER+100)
	{
		Process();
	}
	return CallWindowProc((WNDPROC)OldWndProc, hWnd, uMsg, wParam, lParam);
}

void ModifyWindowProc()
{
	//修改窗口过程函数
	HWND hDlgWnd = GetProcessMainWnd();//获取进程主窗口
	OldWndProc = ::SetWindowLong(hDlgWnd, GWL_WNDPROC, (LONG)WindowProcNew);
}
2.作者答疑

  如有疑问,敬请留言。

关注
打赏
1665481431
查看更多评论
立即登录/注册

微信扫码登录

0.0395s