右键弹出一非模态窗口,点击窗口以外区域关闭,怎么实现
右键弹出一非模态窗口,点击窗口以外区域关闭,如何实现?
右键弹出一非模态窗口,点击窗口以外区域关闭,如何实现?除SetCapture外还有何其它方法?
------解决方案--------------------
1.在主窗口头文件中声明两个成员变量CRect rect和CPopDlg* pdlg用于保存非模态窗口的尺寸和指针;
2.在右键响应函数中保存之:
3.在左键响应函数中
------解决方案--------------------
SetCapture应该是最有效的方法
------解决方案--------------------
你不是要求 “点击窗口以外区域关闭”
怎么 会 影响 “影响了其他窗口的行为呀” 其他窗口 这时要 鼠标 吗 ?
------解决方案--------------------
这个貌似可行啊
右键弹出一非模态窗口,点击窗口以外区域关闭,如何实现?除SetCapture外还有何其它方法?
------解决方案--------------------
1.在主窗口头文件中声明两个成员变量CRect rect和CPopDlg* pdlg用于保存非模态窗口的尺寸和指针;
2.在右键响应函数中保存之:
pdlg = new CPopDlg;
pdlg->Create(IDD_DIALOG1,this);
pdlg->ShowWindow(SW_SHOW);
pdlg->GetClientRect(&rect);
3.在左键响应函数中
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
BOOL flag = PtInRect(&rect,point);
if (flag)
{
pdlg->DestroyWindow();
}
CDialog::OnLButtonDown(nFlags, point);
}
------解决方案--------------------
SetCapture应该是最有效的方法
------解决方案--------------------
你不是要求 “点击窗口以外区域关闭”
怎么 会 影响 “影响了其他窗口的行为呀” 其他窗口 这时要 鼠标 吗 ?
------解决方案--------------------
这个貌似可行啊