【CSplitterWnd技巧一】改變分割視窗拖動條的大小
作者:enoloo
大家都知道預設的CSplitterWnd的拖動條很寬,看起來佔地方,也不美觀。怎麼改變它呢?
研究CSplitterWnd的建構函式發現,拖動條的寬度是可以設定的。下面是我寫的一個簡單的CMySplitter類。他的效果如下:
下面是CMySplitter的代碼:
=========================================================
//MySplitter.h
#pragma once
#include "stdafx.h"
class CMySplitter : public CSplitterWnd
{
public:
CMySplitter();
DECLARE_DYNCREATE(CMySplitter)
public:
~CMySplitter();
protected:
DECLARE_MESSAGE_MAP()
};
=========================================================
//MySplitter.cpp
#include "MySplitter.h"
IMPLEMENT_DYNCREATE(CMySplitter, CSplitterWnd)
//在建構函式中改變分割條的寬度和屬性!
CMySplitter::CMySplitter()
{
m_cxSplitter = 4; //must >=4 ,拖動時拖動條的寬度
m_cySplitter = 4;
m_cxBorderShare = 0; //按下滑鼠時拖動條的位移量
m_cyBorderShare = 0;
m_cxSplitterGap= 1; //splitter拖動條的寬度
m_cySplitterGap= 1;
}
CMySplitter::~CMySplitter()
{
}
BEGIN_MESSAGE_MAP(CMySplitter, CSplitterWnd)
END_MESSAGE_MAP()
=========================================================
使用時,在主視窗中包含標頭檔MySplitter.h,將CSplitterWnd改成CMySplitter就可以了。