to yintongshun(左岸思雨) ,SDI 中 CSplitterWnd 2 个 CFormView ,怎么把分隔的 2边(或者1边)变成平的,不要凹下去的那种?

CompletionPort 2005-03-17 08:20:36
我用

http://community.csdn.net/Expert/topic/3423/3423450.xml?temp=9.338015E-02


在OnInitialUpadata()里
{
ModifyStyle(WS_EX_CLIENTEDGE,WS_EX_STATICEDGE);
ModifyStyle(-1,WS_CHILD|WS_VISIBLE);

CYourView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();

}
然后,在onNcpaint里写上如下几句话
CWindowDC dc(this);
CRect rectClient;
GetClientRect(rectClient);
CRect rectWindow;
GetWindowRect(rectWindow);
ScreenToClient(rectWindow);
rectClient.OffsetRect(-rectWindow.left, -rectWindow.top);
dc.ExcludeClipRect(rectClient);
rectWindow.OffsetRect(-rectWindow.left, -rectWindow.top);

// Paint to a memory device context to help
// eliminate screen flicker...

// and draw a sunken border for the client area.
SendMessage(WM_ERASEBKGND, (WPARAM)dc.m_hDC);
dc.DrawEdge(rectWindow, BDR_RAISEDINNER, BF_RECT);

===========================================

的方法,对于 1 个 CFormView 是没有问题,但是用 CSplitterWnd 后怎么也不行,

需要重写 CSplitterWnd?

...全文
106 点赞 收藏 3
写回复
3 条回复
CompletionPort 2005年03月21日
up
回复 点赞
CompletionPort 2005年03月21日
up
回复 点赞
张佩 2005年03月18日
子类化CSplitterWnd类,重载虚函数OnDrawSplitter,在里面改。判断nType:
CRect rc = rectArg;
switch(nType)
{
case splitBorder:
pDC->DrawsdRect(rc, RGB(0, 0, 0), RGB(0, 0, 0));
rc.InflateRect(-1, -1);
pDC->DrawsdRect(rc, RGB(0, 0, 0), RGB(0, 0, 0));
break;
case splitBox:...;
case splitBar:...;
}你会看到效果的。
回复 点赞
发动态
发帖子
界面
创建于2007-09-28

7976

社区成员

11.5w+

社区内容

VC/MFC 界面
社区公告
暂无公告