想做个吸附窗口的东西,怎么做?
HWND g_BkWnd=NULL; ///-///背景窗口
HWND g_MainWnd=NULL;///-///主窗口
void CXFWDlg::OnButton1()
{///-///产生子窗口
// TODO: Add your control notification handler code here
if (!IsWindow(g_BkWnd))
{
CBK_Window *pBK_Window =new CBK_Window;
pBK_Window->Create(IDD_BK,NULL);
pBK_Window->ShowWindow(SW_SHOW);
g_BkWnd=pBK_Window->m_hWnd;
}
else
{
::SendMessage (g_BkWnd, WM_CLOSE, 0, 0);
}
}
void CXFWDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{///-///判断窗口移动
CDialog::OnWindowPosChanging(lpwndpos);
// TODO: Add your message handler code here
if ((g_MainWnd==lpwndpos->hwnd)&&(IsWindow(g_BkWnd)))
{
CRect m_CRect_Main,m_CRect_Bk;
::GetWindowRect(g_MainWnd,m_CRect_Main);
::GetWindowRect(g_BkWnd,m_CRect_Bk);
if((abs(m_CRect_Main.bottom-m_CRect_Bk.top)>10)||((abs(m_CRect_Main.left-m_CRect_Bk.left)>10)))
{
::SetWindowPos(g_BkWnd,HWND_TOP,lpwndpos->x,(lpwndpos->y+lpwndpos->cy),lpwndpos->cx,lpwndpos->cy,SWP_NOZORDER);
::BringWindowToTop(g_MainWnd);
}
}
}
这样做卡死了。
----------------------------------------
http://blog.csdn.net/geoh/article/details/5880756
好像有人做过了,就是没看懂,能不能把这里的CAbout对话框换成别的对话框?
还有,里面的OnWnd什么的虚函数,是不是截取了所有窗口的大小,位置变化?