怎样使得dialogBar不能浮动 原先的dialogBar是点击不能浮动的使用FloatControlBar和Dock之后,点击dialogBar它的状态就在浮动\停靠中切换了我要得到的效果是,当停靠后,点击dialogBar也不能改变为浮动状态怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 m_pDialogBar.m_pDockBar = NULL; 谢谢,这样做后出现了个新问题.我的是个dialogBar的继承类,重写了OnLButton消息,使得可以鼠标在dialogBar上按着不放可以拖动主窗口,void CShapeDialogBar::OnLButtonDown(UINT nFlags, CPoint point) { //使可以移动皮肤对话框 CWnd* pParent=GetParent(); pParent->PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y)); CDialogBar::OnLButtonDown(nFlags, point);}但EnableDocking和m_pDialogBar.m_pDockBar = NULL;之后,鼠标在dialogBar上按着不放只能拖动dialogBar,而主窗口不动了,怎么回事? 不要用CWnd* pParent=GetParent();在创建后,用个变量保存CWnd*bar.m_pwnd=this->GetSafeHwnd();HWND m_pwnd;.....pParent->PostMessage(m_pwnd,WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y)); 错了bar.m_pwnd=this->GetSafeHwnd();HWND m_pwnd;.....::PostMessage(m_pwnd,WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y)); 派生CDialogBar,在派生类里处理WM_LBUTTONDBLCLK,这样处理: if (m_pDockBar != NULL && OnToolHitTest(pt, NULL) == -1) { return; } else { CDialogBar::OnLButtonDblClk(nFlags, pt); } 还有一种办法,如果你打算学我那样派生CDockContext的话,重写它的ToggleDocking函数:void CMyDockContext::ToggleDocking(){ if(m_pBar->IsKindOf(RUNTIME_CLASS(CDialogBar))) { return; } CDockContext::ToggleDocking();} 学习学习,MFC的消息还挺复杂的 怎么解决你这些问题都在MFC的源代码里可以找到解决方案。 如何得到动态创建按钮的句柄 我的多文档程序是继承CWinApp和CBCGPWorkspace,我添加的加速键不起作用 对话框里面的list控件,点弹出菜单,怎么响应里面菜单的点击事件啊??? 问一下,关于WIN32怎么换成MFC 关于结束进程ExitProcess()的使用 动态更换动态库(高难度) CListView使用的基础问题,在线等待 (高分)我也来问这个问题!!! 怎么控制属性页中各控件的大小和字体的大小? 简单的问题,大家讨论,分数不限 做过条码系统的请进来看看 如何改变CDialogBar的尺寸
我的是个dialogBar的继承类,重写了OnLButton消息,使得可以鼠标在dialogBar上按着不放
可以拖动主窗口,
void CShapeDialogBar::OnLButtonDown(UINT nFlags, CPoint point)
{
//使可以移动皮肤对话框
CWnd* pParent=GetParent();
pParent->PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));
CDialogBar::OnLButtonDown(nFlags, point);
}但EnableDocking和m_pDialogBar.m_pDockBar = NULL;之后,鼠标在dialogBar上按着不放只能拖动dialogBar,而主窗口不动了,怎么回事?
在创建后,用个变量保存CWnd*bar.m_pwnd=this->GetSafeHwnd();HWND m_pwnd;
.....pParent->PostMessage(m_pwnd,WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));
.....::PostMessage(m_pwnd,WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));
{
return;
}
else
{
CDialogBar::OnLButtonDblClk(nFlags, pt);
}
void CMyDockContext::ToggleDocking()
{
if(m_pBar->IsKindOf(RUNTIME_CLASS(CDialogBar)))
{
return;
}
CDockContext::ToggleDocking();
}