[转载]CDockablePane窗口风格设置_人生几何_新浪博客

去掉关闭按钮:在继承CDockablePane的类中重写CanBeClosed()方法:
virtual BOOL CanAutoHide() const { return FALSE; }


去掉自动隐藏风格:virtual BOOL CanAutoHide() const { return FALSE; }


想要去掉更多的风格,可以直接一层层地查看源码,返回FALSE即可。在我的需求中,需要去掉浮动风格

virtual BOOL CanFloat() const { return FALSE; } ,也就是让此窗口固定吸附在某个位置,但发现重新运行后,窗口不会像原先吸附在原来的位置,而是默认移动到了最下端,显然这不是想要的。因为懒得写窗口的初始化位置,所以只能不用这个方法了。


如果不要浮动风格,那怎么办呢?之所以会浮动是因为可以点击标题栏和下方的边框,那我们去掉标题栏风格就是了。但是传统的去掉WS_CAPTION风格是没有用的(如果你做到了,请告诉我),所以只能在Create的时候将第4个参数bHasGripper设置为FALSE,标题栏就不会出现了。如下:


m_wndOutput.Create(strOutputWnd, this, CRect(0, 0, 100, 100),FALSE, ID_VIEW_OUTPUTWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)


当然啦,网上还有说重写GetCaptionHeight,virtual int GetCaptionHeight() const { return 0;} 就可以了,但这种旁门左道是不持久的,双击窗口的下边框,窗口又浮了出来,那怎么办呢?还是有办法。直接找到父类CBasePane里边去,发现有一个


virtual BOOL FloatPane(CRect rectFloat, AFX_DOCK_METHOD dockMethod = DM_UNKNOWN, bool bShow = true) { return FALSE; }


没错!把它重写在继承窗口类里边,运行。发现双击下边的边框,它再也俏皮不起来了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值