(true); m_para2.ShowWindow(false); m_result.ShowWindow(false); //设置默认的选项卡 m_tab.SetCurSel(0); 18 19 20 21 22 23 int CurSel = m_tab.GetCurSel(); switch(CurSel) ...{ case 0: m_para1.ShowWindow (true); m_para2.ShowWindow(false); m_result.ShowWindow(false); break; case 1: m_para1 .ShowWindow(false); m_para2.ShowWindow(true); m_result.ShowWindow(false); break; case 2: m_para1.ShowWindow(false); m_para2.ShowWindow(false); m_result.ShowWindow(true)
END_MESSAGE_MAP() 4、实现单击事件方法 void Main::OnStnClickedPicWsus() { wsusDlg.ShowWindow(TRUE); virusListDlg.ShowWindow (FALSE); softListDlg.ShowWindow(FALSE); } void Main::OnStnClickedPicViruslist() { virusListDlg.ShowWindow (TRUE); wsusDlg.ShowWindow(FALSE); softListDlg.ShowWindow(FALSE); } void Main::OnStnClickedPicSoftlist () { softListDlg.ShowWindow(TRUE); wsusDlg.ShowWindow(FALSE); virusListDlg.ShowWindow(FALSE); }
(4)根据窗口句柄,调用ShowWindow函数控制任务栏各区域显示或隐藏(Show/Hide);调用EnableWindow函数控制任务栏各区域有效或无效(Enabled/Disabled)。 (wnd[0],SW_HIDE); 1:ShowWindow(wnd[1],SW_HIDE); 2:ShowWindow(wnd[2],SW_HIDE); 3:ShowWindow(wnd[ 3],SW_HIDE); 4:ShowWindow(wnd[4],SW_HIDE); end else case Tcheckbox(Sender).Tag of 0:ShowWindow (wnd[0],SW_SHOW ); 1:ShowWindow(wnd[1],SW_SHOW ); 2:ShowWindow(wnd[2],SW_SHOW ); 3:ShowWindow(wnd [3],SW_SHOW ); 4:ShowWindow(wnd[4],SW_SHOW ); end; end; procedure TForm1.FormClose(Sender: TObject
name: return hwd 窗口显示 def xianshi(name): hwd = get_hwnd_from_name(name) win32gui.ShowWindow (hwd, win32con.SW_SHOW) 窗口隐藏 def yingcang(name): hwd = get_hwnd_from_name(name) win32gui.ShowWindow if name == '': for i in tuopan_hwd_list[:7] :#[:7]因为要保留一些基本的内容,也可以全部隐藏 win32gui.ShowWindow (i, win32con.SW_HIDE) else: win32gui.ShowWindow(name, win32con.SW_HIDE) 显示托盘 def xianshi( (i, win32con.SW_SHOW) else: win32gui.ShowWindow(name, win32con.SW_SHOW) 发布者:全栈程序员栈长,转载请注明出处
项目中添加导出函数 模态窗口 void ShowWindow() { AFX_MANAGE_STATE(AfxGetStaticModuleState())//加上就行了 CTestPushStreamClientDlg dlg; dlg.DoModal(); } 非模态窗口 void ShowWindow() { AFX_MANAGE_STATE(AfxGetStaticModuleState())//加上就行了 dlg.Create(IDD_TESTPUSHSTREAMCLIENT_DIALOG, NULL); dlg.ShowWindow(SW_SHOW); } mfc项目配置 在导出函数文件中定义
None, "x32dbg") # hwnd = win32gui.FindWindow('xx.exe', None) # 窗口需要正常大小且在后台,不能最小化 win32gui.ShowWindow (hwnd, win32con.SW_SHOWNORMAL) # 窗口需要最大化且在后台,不能最小化 # ctypes.windll.user32.ShowWindow(hwnd, 3) win32con.SWP_NOSIZE) # 取消置顶 # win32gui.SetWindowPos(hwnd, win32.HWND_NOTOPMOST, 0, 0, 0, 0,win32con.SWP_SHOWWINDOW *x32dbg.*", str(t)): print(h) win32gui.ShowWindow(h, win32con.SW_SHOW) 封装成类,运行后将窗体置顶 _hwnd) def Maximize(self): win32gui.ShowWindow(self.
[DllImport("user32.dll", SetLastError = true)] private static extern bool ShowWindow = IntPtr.Zero) { ShowWindow(hWnd, 0); } = IntPtr.Zero) { ShowWindow(hWnd, 1); } } } 分析代码我们可以看出,控制显示和隐藏的关键代码是 ShowWindow(hWnd, 0); 参数为0:隐藏;为1:显示;为2:最小化。
(true); m_CidName.ShowWindow(false); m_sysTime.ShowWindow(false); m_16th.ShowWindow(false); m_17th.ShowWindow (true); m_CidName.ShowWindow(false); m_sysTime.ShowWindow(false); m_16th.ShowWindow(false); m _17th.ShowWindow(false); break; case 1: m_ComputerName.ShowWindow(false); m_CidName.ShowWindow ; case 2: m_ComputerName.ShowWindow(false); m_CidName.ShowWindow(false); m_sysTime.ShowWindow (false); m_CidName.ShowWindow(false); m_sysTime.ShowWindow(false); m_16th.ShowWindow(true); m
FindWindowEx(pMdi->m_hWnd,NULL,NULL,_T("Drawing1.dwg")); //根据需要修改要查找的窗体标题,打开的图纸往往在标题里包含文件名,这样就可以知道该排哪个窗体了 ::ShowWindow (h_pSub1,SW_NORMAL); ::SetWindowPos(h_pSub1,NULL,0,0,rect.right/2,rect.bottom,SWP_SHOWWINDOW); HWND h_pSub2=::FindWindowEx(pMdi->m_hWnd,NULL,NULL,_T("Drawing2.dwg")); ::ShowWindow (h_pSub2,SW_NORMAL); ::SetWindowPos(h_pSub2,NULL,rect.right/2,0,rect.right/2,rect.bottom,SWP_SHOWWINDOW);
设置子对话框尺寸并移动到指定位置 m_para1.MoveWindow(&rs); m_para2.MoveWindow(&rs); //分别设置隐藏和显示 m_para1.ShowWindow (1); m_para2.ShowWindow(0); //设置默认的选项卡 m_tabctrl.SetCurSel(0); 8. 函数体代码如下: int CurSel = m_tabctrl.GetCurSel(); switch(CurSel) { case 0: m_para1.ShowWindow (true); m_para2.ShowWindow(false); break; case 1: m_para1.ShowWindow(false); m_para2.ShowWindow(true); break; default: ; *pResult = 0; } 9.好了,完成,这个小程序很简单
EnableWindow(FALSE); GetDlgItem(IDHELP)->EnableWindow(FALSE); //隐藏 4 Button GetDlgItem(IDOK)->ShowWindow (SW_HIDE); GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE); GetDlgItem(ID_APPLY_NOW)->ShowWindow(SW_HIDE ); GetDlgItem(IDHELP)->ShowWindow(SW_HIDE); //调整窗体大小 CRect btnRect; CRect wdnRect;
窗口的隐藏与显示我们用API函数ShowWindow,而添加和删除任务栏中的程序图标用的是Shell_NotifyIcon函数,ShowWindow函数平时用的比较多,而且也比较简单,这里就不在阐述,下面主要说明 LoadIcon(NULL, IDI_APPLICATION); _tcscpy_s(nid.szTip, sizeof(nid.szTip), _T("提示信息")); ShowWindow (hWnd, SW_MINIMIZE); ShowWindow(hWnd, SW_HIDE); return Shell_NotifyIcon(NIM_ADD, &nid ); }else { //当需要移出图标时,窗口也应该完全显示,因此不需要对图标操作,后面的几个值就是无效值,这里可以不用管它们 ShowWindow(hWnd, { case WM_LBUTTONDBLCLK: TrackIcon(hwndDlg,FALSE); ShowWindow
identifierHINSTANCE hInstance, // handle to application instanceLPVOID lpParam); // window-creation dataBOOL ShowWindow =NULL)return TRUE;elsereturn FALSE;}BOOL CWnd::ShowWindow(int nCmdShow){return ::ShowWindow(m_hWnd,nCmdShow ;wnd.ShowWindow(SW_SHOWNORMAL);wnd.UpdateWindow();HWND hwnd;hwnd=CreateWindowEx();::ShowWindow(hwnd,SW_SHOWNORMAL 定义一个cbuttonm_btn.Create("weixin",WS_CHILD | BS_DEFPUSHBUTTON, CRect(0,0,100,100),this,123);// 显示m_btn.ShowWindow
Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs eventArgs) { base.OnStartupNextInstance(eventArgs); app.showWindow void OnStartup(System.Windows.StartupEventArgs e) { base.OnStartup(e); showWindow (); } public void showWindow() { MainWindow win = new MainWindow
= null) { var hwnd = process.MainWindowHandle; ShowWindow(hwnd, 9); return } [DllImport("user32.dll")] private static extern int ShowWindow(IntPtr hwnd, uint nCmdShow); 你一定觉得那个 在前面的 ShowWindow 之后,再调用一下 SetForegroundWindow 即可将其激活到最前面来。如果在其他桌面,则会切换到对应的桌面。 )] public static extern bool SetForegroundWindow(IntPtr hWnd); var hwnd = process.MainWindowHandle; ShowWindow = IntPtr.Zero) { ShowWindow(hwnd, 9); return; } // 启动自己的主窗口,此部分代码省略。
= NULL) { // 切换显示与隐藏桌面 if (IsWindowVisible(hWnd)) { ShowWindow(hWnd, SW_HIDE); } else { ShowWindow(hWnd, SW_SHOW); } // 模拟按键 Win+D //Sleep(100); //keybd_event(VK_LWIN, 0, 0, 0 = NULL) { // 切换显示与隐藏任务栏 if (IsWindowVisible(hWnd)) { ShowWindow(hWnd, SW_HIDE); ShowWindow (hWnd2, SW_HIDE); // 第二屏幕任务栏需单独隐藏 } else { ShowWindow(hWnd, SW_SHOW); // 显示第一屏幕任务栏后,第二屏幕任务栏会自动显示
param name="nCmdShow">0 隐藏,1显示</param>
/// <returns></returns>
[DllImport("user32.dll", EntryPoint = "ShowWindow ", SetLastError = true)]
static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);
public class MyProcess = null)
{
if (ptrHide == IntPtr.Zero)
{
ShowWindow(process().MainWindowHandle, 1);
}
else
{
ShowWindow ShowWindow(ptrHide, 0);
}
}
///
win32gui.FindWindow(None, handle) # hwnd= win32gui.FindWindow(‘xx.exe’, None) # 窗口需要正常大小且在后台,不能最小化 win32gui.ShowWindow (hwnd, win32con.SW_SHOWNORMAL) # 窗口需要最大化且在后台,不能最小化 # ctypes.windll.user32.ShowWindow(hwnd,3) # win32gui.SetForegroundWindow , 0, 0, 0, win32con.SWP_NOMOVE| win32con.SWP_NOACTIVATE | win32con.SWP_NOOWNERZORDER | win32con.SWP_SHOWWINDOW
显示窗口 Create函数执行完成后,会接着执行下面的duiFrame.ShowWindow();我们跟到这个函数中,函数代码如下: void CWindowWnd::ShowWindow(bool bShow ::IsWindow(m_hWnd) ) return; ::ShowWindow(m_hWnd, bShow ? (bTakeFocus ? SW_SHOWNORMAL : SW_SHOWNOACTIVATE) : SW_HIDE); } 函数ShowWindow默认传入参数为bShow = true bTakeFocus = false; 在最后进行ShowWindow函数的调用时,根据bShow和bTakeFocus来进行值得传入,根据代码我们发现,当不传入参数时调用的其实是这样的代码ShowWindow(m_hWnd, SW_SHOWNOACTIVATE CWindowWnd类中的ShowWindow函数用于显示窗口 4. 消息循环由CPaintManagerUI::MessageLoop();代码完成 5.
window.Topmost = true;
Console.WriteLine("工具条窗口置顶");
}
外部应用窗口置顶
工具类
public class ZWinUtil
{
#region ShowWindow 在从其他线程最小化窗口时才使用这个参数
///
private const int SW_FORCEMINIMIZE = 11;
#endregion ShowWindow hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
[DllImport("user32.dll", EntryPoint = "ShowWindow ")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
///