某些游戏全屏后无法最小化
想切出来QQ一下都不行
如何编程实现热键将全屏窗口最小化?

解决方案 »

  1.   

    如果有源码请发给我
    [email protected]
    谢谢
      

  2.   

    这里提供一个思路使用::RegisterHotKey注册热键,然后使用CWnd::ShowWindow()和CWnd::SetForegroundWindow激活窗口
      

  3.   

    BOOL CDoDlg::OnInitDialog()
    {
    m_Atom = AddAtom("CSCOMMANDBAR");
    m_AtomRun = AddAtom("CSCOMMANDRUN");
    if(!m_Atom) PostQuitMessage(0);
    //RegisterHotKey(m_hWnd,m_Atom,MOD_WIN,'K');
    if(!RegisterHotKey(m_hWnd,m_Atom,MOD_WIN,'C')) PostQuitMessage(0);
    if(m_AtomRun) RegisterHotKey(m_hWnd,m_AtomRun,MOD_WIN,'K');
    CheckDlgButton(IDC_HIDE,TRUE);

    return TRUE;  // return TRUE  unless you set the focus to a control
    }void CDoDlg::OnHotKey(UINT nID,DWORD dwFlags)
    {
    /*if(nID==m_Atom)
    {
    if((dwFlags & 0xffff)==MOD_WIN && (dwFlags>>16)=='C') ShowWindow(IsWindowVisible() ? SW_HIDE : SW_SHOW);
    else if((dwFlags & 0xffff)==MOD_WIN && (dwFlags>>16)=='M') OnOK();
    }*/
    if(nID==m_Atom && (dwFlags & 0xffff)==MOD_WIN && (dwFlags>>16)=='C')
    {
    ShowWindow(IsWindowVisible() ? SW_HIDE : SW_SHOW);
    }
    else if(nID==m_AtomRun && (dwFlags & 0xffff)==MOD_WIN && (dwFlags>>16)=='K')
    {
    OnOK();
    }
    else DefWindowProc(WM_HOTKEY,nID,(LPARAM)dwFlags);
    }