如题,如果谁做过或者有这方面的元代码给我发一份,谢谢啊!我的Email:[email protected],MSN:[email protected],欢迎加我,提供思路,谢谢了,在线急等。

解决方案 »

  1.   

    这是有效代码, 我不方便把全部代码发给你, 望理解BEGIN_MESSAGE_MAP(CXXXXDlg, CDialog)
    //{{AFX_MSG_MAP(CXXXXDlg)
    ON_WM_WINDOWPOSCHANGED()
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    BOOL CXXXXDlg::OnInitDialog()
    {
    CDialog::OnInitDialog(); if (!IsWindow(m_XXXInfoDlg.GetSafeHwnd()))
    return;
    CRect rc(m_BackInfo.rc);
    ClientToScreen(rc);

    m_XXXInfoDlg.SetWindowPos(NULL, rc.right, rc.top, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE);
    if (IsWindowVisible())
    m_XXXInfoDlg.ShowWindow(SW_SHOWNA);
    else
    m_XXXInfoDlg.ShowWindow(SW_HIDE);
    return TRUE;
    }
    void CXXXXDlg::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos) 
    {
    CWnd::OnWindowPosChanged(lpwndpos);
    //设置吸附窗口的贴靠效果
    //m_XXXInfoDlg是吸附窗口
    if (!IsWindow(m_XXXInfoDlg.GetSafeHwnd()))
    return;
    CRect rc(m_BackInfo.rc);
    ClientToScreen(rc);
    if (!(lpwndpos->flags & SWP_NOZORDER))
    ::SetWindowPos(m_XXXInfoDlg.GetSafeHwnd(), m_hWnd, rc.right, rc.top, 0, 0, SWP_NOSIZE  | SWP_NOOWNERZORDER | SWP_NOACTIVATE | SWP_NOSENDCHANGING);
    else
    m_XXXInfoDlg.SetWindowPos(NULL, rc.right, rc.top, 0, 0, SWP_NOSIZE  | SWP_NOOWNERZORDER | SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOSENDCHANGING);
    if (IsWindowVisible() && !m_XXXInfoDlg.IsWindowVisible())
    m_XXXInfoDlg.ShowWindow(SW_SHOWNA);
    else if (!IsWindowVisible() && m_XXXInfoDlg.IsWindowVisible())
    m_XXXInfoDlg.ShowWindow(SW_HIDE);
    else if (lpwndpos->flags & SWP_SHOWWINDOW)
    m_XXXInfoDlg.ShowWindow(SW_SHOWNA);
    else if (lpwndpos->flags & SWP_HIDEWINDOW)
    m_XXXInfoDlg.ShowWindow(SW_HIDE);
    }吸附窗口BEGIN_MESSAGE_MAP(CXXXinfoDlg, CDialog)
    //{{AFX_MSG_MAP(CChatinfoDlg)
    ON_WM_ACTIVATE()
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()void CXXXinfoDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
    {
    if (nState != WA_INACTIVE && m_pChat && m_pChat->GetSafeHwnd())
    //m_pXXX是主窗口指针
    m_pXXX->SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
    }
      

  2.   

    CXXXXDlg是主窗口的代码, CXXXinfoDlg是吸附窗口的代码