hur.cn - 华软网

 热门搜索

用过CDockablePane的帮忙解答一下

  作者:未知    来源:网络    更新时间:2011/8/20
由于比较急用,问了说清楚问题,再次开贴,见谅啊。。



CDockablePane上放一个对话框,对话框风格设为child,已经去了边框,

我要的功能是:点击右上角那个X ,立即隐藏DockablePane。。。对话框当然也跟着隐藏之。


我写了个类,派生于CDockablePane, CDockablePane上方一个对话框,要求: 关闭右上角那个X的时候,将CDockablePane隐

藏之(对话框也要隐藏),  于是我就在CDockablePane的OnClose里面处理

代码
void CMyDockablePane::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

//CDockablePane::OnClose();

AfxMessageBox(_T("隐藏面板"));

ShowWindow(SW_HIDE); //隐藏

}

当我点击的时候,发现毫无反应。!!!!!! 


我查了一下, 有前辈的老帖子提到过,  CDockablePane右上角那个X不是 对应着 OnClose,,所以重载这个函数,毫无意义。。



有前辈说重载CloseMiniFrame 这个函数, 我不知道具体如何重载, 用过的,帮忙解答一下


---华软 网友回答---
没人回帖啊 ,救急啊 
---华软网友回复---
救命啊 难道没有人用过嘛  
---华软网友回复---
引用楼主 qunqun2012 的回复:
由于比较急用,问了说清楚问题,再次开贴,见谅啊。。



CDockablePane上放一个对话框,对话框风格设为child,已经去了边框,

我要的功能是:点击右上角那个X ,立即隐藏DockablePane。。。对话框当然也跟着隐藏之。


我写了个类,派生于CDockablePane, CDockablePane上方一个对话框,要求: 关闭右上角那个X的时候,将CDocka……

查一下关闭时对应的消息 然后重载一下
---华软网友回复---
在msdn找到了,要关闭面板,可以重载这个函数:  


BOOL CMainFrame::OnCloseMiniFrame(CPaneFrameWnd* pWnd)
{
// TODO: 在此添加专用代码和/或调用基类
AfxMessageBox(_T("面板被关了"));
return CMDIFrameWndEx::OnCloseMiniFrame(pWnd);
}


居然不是重载CDockablePane类的函数,而是面板的父窗口:CMainFrame!!!!!!!!!111


我现在的疑问就是:  

我想重载这个函数,实现 面板隐藏,该如何做呢?   

大侠救命啊 。。。
---华软网友回复---
BOOL CMainFrame::OnCloseMiniFrame(CPaneFrameWnd* pWnd)
{
// TODO: 在此添加专用代码和/或调用基类
pWnd->ShowWindow(SW_HIDE);
return CMDIFrameWndEx::OnCloseMiniFrame(pWnd);
}

问题已经解决,    
---华软网友回复---
表示学习一下      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。