Article View: comp.os.ms-windows.programmer.tools.mfc
Article #29Re: Q: Dockable windows with tabs in MFC?
From: Norman Scroggins
Date: Fri, 12 Jan 1996 12:57
Date: Fri, 12 Jan 1996 12:57
67 lines
3356 bytes
3356 bytes
Scott Libert wrote: > > RobertC@ProDentec.com (Robert Christian) wrote: > > >Norman Scroggins <nscroggi@us.oracle.com> wrote: > > >>Stian Barkbu wrote: > >>> > >>> I am trying to create a dockable property sheet (tabbed > >>> dialog), much like the project workspace in MSVC++ 4.0. Is > >>> this possible at all? > >>> > >>> I have managed to create a tabbed dialog box using the > >>> CPropertySheet and CPropertyPage classes (or a TabCtrl), and I > >>> can get a dockable window using CDialogBar. But, a dockable > >>> window with a tab control seems impossible ( or, at least none > >>> of my efforts have been successful so far). > >>> Can anyone help me with this one? > >>> > >>> Thanks. > >>> > >>> Stian > >>> snba@sesam.dnv.no > > >>I myself have been trying to get some help doing this--with > >>the added twist of having the tabs oriented on the bottom > >>instead of the top. Let's keep each other updated on a > >>solution. Thanks. > > >>--Norm > > >I'm not certain, but it appears to me that Microsoft is actually > >performing somewhat of a trick. I don't think they are using property > >pages, but rather a tab control placed under a tree control. When you > >select a tab, they hide one tree control and display another...maybe. > > >Robert Christian > > Just wanted to say I agree with Roger; I have implemented something > just like that. I have a CView-derived object which creates a > CTabCtrl as as a child, then creates a CTreeCtrl as a child of the tab > control. And it all works. > > The next step I am working on right now is to have the parent window > be a CControlBar-derived class instead of CView. I see no problem > here. > > A bigger problem, however, is how to get the "splitter" functionality > to size the CControlBar-derived object. Since I am using MDI, I can't > use CSplitterWnd in the main frame, due to the assumptions made in the > GetParentFrane() method of CMDIChildWnd. My tack at this point is to > implement special WM_NCPAINT handling to draw what looks like a > spliitter bar and add WM_NCHITTEST, WM_NCLBUTTONDOWN & WM_NCMOUSEMOVE > handling to show the "drag splitter" cursor and resize the window. > > It seems once this is done the only thing left to do to perform the > magic that MS does of changing the control bar window from/to a mdi > child window is to change the parentage of the window.via SetParent(). > > - Scott L. However, I still don't understand how you oriented the tabs so that they were on the bottom (rotated 180 degrees) ala Excel worksheet tabs. Would someone explain? Thanks. --Norm
Technical Details
Message-ID:
<30F65AD2.6702@us.oracle.com>Path:
arc1-ca.pugleaf.net!inet-nntp-gw-1.us.oracle.com!newsReferences:
<4crfes$2qu@nms.telepost.no> <30F25A5E.31EC@us.oracle.com> <4d0f92$5v3@zeus.intellinet.com> <4d40q3$99o@maureen.teleport.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!inet-nntp-gw-1.us.oracle.com!news From: Norman Scroggins <nscroggi@us.oracle.com> Newsgroups: comp.os.ms-windows.programmer.tools.mfc,comp.lang.c++ Subject: Re: Q: Dockable windows with tabs in MFC? Date: Fri, 12 Jan 1996 12:57:54 +0000 Organization: Oracle Corporation. Redwood Shores, CA Message-ID: <30F65AD2.6702@us.oracle.com> References: <4crfes$2qu@nms.telepost.no> <30F25A5E.31EC@us.oracle.com> <4d0f92$5v3@zeus.intellinet.com> <4d40q3$99o@maureen.teleport.com> NNTP-Posting-Host: nscroggi-pc.us.oracle.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 2.0b3 (WinNT; I) To: Scott Libert <slibert@teleport.com>