|
|
Comments and Discussions
|
|
 |

|
it's very good.it's useful to me.
|
|
|
|

|
Hi Daniel,
How can I add CLeftPaneTreeView to right tab group at TabDemo project ? Thank you very much!
Just do it!!!
|
|
|
|

|
Is .NET version available?
|
|
|
|

|
Does Tab control Opens a page in new tab when that page is redirected from another page??
|
|
|
|

|
Did dockingframe's arrange is settled by class ssection ?
How to let vertical dockframe up to horizontal dockingframe ?
|
|
|
|

|
I found a solution to solved this question.
in dockingframe.h locate like that:
public:
CDockingFrameImplBase()
:m_vPackage(false),m_hPackage(true)
{
}
change m_vPackage(false),m_hPackage(true)
to m_vPackage(true),m_hPackage(false)
it's worked.
|
|
|
|

|
Hello, Daniel.
I create a object m_tab with your CDotNetTabCtrl, and something goes wrong.
The code is:
m_tab.Create(m_hWnd, rcDefault, NULL, WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | TCS_BOTTOM | TCS_TOOLTIPS | CTCS_HOTTRACK);
for(char i = 'A' ; i <= 'Z' ; i++)
{
CString str;
str.Format(_T("%c"), i);
m_tab.InsertItem(i - 'A', str.GetBuffer(0));
}
Each tab appears normally but the one lable "I", thers is no any text on the tab, but the tooltip shows correctly.
How to slove the problem ?
English is not my mother tongue, so forgive my poor English.
By the way, how can I contact with you ?
|
|
|
|

|
Because the i is too thin , you can use “ i "
|
|
|
|

|
Excellent piece of work!
Could you please clarify the licencing conditions?
|
|
|
|

|
peterchen wrote: Excellent piece of work!
Could you please clarify the licencing conditions?
I'll follow up with you through e-mail.
I'm horribly being on replies to this article, but I'm still here Someday I might catch up...
-Daniel
|
|
|
|

|
Hi Daniel, it was pleasure going through your code. Always nice to see a well written piece of code.
I currently have a tabbed class (that I use it as an addin to a 3rd party app). I will like to implement the close tab button in my own code (using MFC). Not sure if I can do this since I just started looking at possible solutions to this problem.
Of' course basing my code to your code base will be a great start (even if you are using ATL/WTL), but unfortunately the license of your code is vague at best. Can you please elaborate on your explicit license agreement.
Again thank you for sharing your code.
.Harrys.
|
|
|
|

|
can who help me :how to have XP-style in designe C# program ? --- library
|
|
|
|

|
Before I start digging, does anyone have a quick solution for getting notifications (e.g. mouse click, move enter etc.) from docked, tabbed autohide windows? I can grab some of the msgs I am after in a PreTranslateMessage handler in my MainFrame but not all. Looking to allow for dropping of items onto the tab not just the client wnd and also looking to disable undocking based on user settings.
Thanks in advance.
|
|
|
|

|
I'm using "Custom Tab Controls, Tabbed Frame and Tabbed MDI", any thing looks OK, but once:
When I compiled it with VC8, Any thing OK.
But when I compiled it with VC6, the tooltips on the "Custom Tab Controls" do NOT display any more,
I don't know the reason, anyone help me?
My project web site:
http://sourceforge.net/projects/superpad[^]
Work hunting
|
|
|
|
|

|
Is there anyone who can tell me how to add an double click event to the intems of the CTreectrl for the TabbedSDISplitter demo.
Thanks!
|
|
|
|

|
HI,
As one beginner of WTL, I couldn't find out how to show and hide pages in
the sample project TabbedSDISplitter,any one could help? THANKS IN ADVANCE.
|
|
|
|

|
Why you are not supporting NM_RELEASEDCAPTURE event in this customized tab control?
|
|
|
|

|
... for doing the work on this control and sharing with the community.
|
|
|
|

|
sorry sir, i want to know:
accroding to Project "TabbedSDISplitter"
i cannot go into "CMyCustomListView::OnItemPostPaint" method,
if i put a control inherit from "CMyCustomListView" into
dialog box(IDD_SDIDLG_FORM).
code like this:
class CSdiDlgView :public CDialogImpl,
public CDialogResize
{
...
CMyCustomListView m_list;
};
LRESULT CSdiDlgView::OnInitDialog(...){
m_list.SubclassWindow(GetDlgItem(IDC_LIST));
}
can somebody help me!
|
|
|
|

|
i want to konw
How to let the "Task List" of panewindows first selected.
now first is "Test Dialog" pane.
|
|
|
|

|
m_PaneWindows.front()->Show();
|
|
|
|

|
Help pls)
first error that had occured was smth like errit in manifest compiling, i disabled the option @genereate manifest file" and whis trouble has gone..
another issue is that this samle after compilation requires ATL80.dll.. strange
but after i copy this file to the dir with executable, msgbox appears with
"R6304 An application has made an attempt to load ATL80.DLL incorrectly...." message..
ps: project was compiled as a devug version.
any changes in @project options->Use of ATL@
such as (Not Uing ATL/Using as LIB/As dll) has no affect on this trouble
|
|
|
|

|
hmm occationally in Release mode all is ok...
strange
|
|
|
|

|
When I'm using the Tabbed Framework with STLPort5.0.2 VS2003 SP1, I see a strange bugs when I'm resizing tabbed windows. Could you fix it, Daniel?
|
|
|
|

|
I'm new to WTL but like it a lot better than MFC so far. I create a lot of small utilities for work that have a basic tabbed interface, and I was hoping to use the CTabbedFrameImpl in place of my CFrameWindowImpl for my main frame. Basically I want to have CDotNetTabCtrl as my "view", then other "views" would be managed by the tab control.
But, I'm not at all sure how to make this work, and none of the samples demonstrate this basic approach. From what I gather, I need to change the base class to CTabbedFrameImpl instead of CFrameWindowImpl. I'm not clear what else needs to be done. The article mentions using CCustomTabOwnerImpl as a mix-in class, I assume of the frame window, but I'm confused.
Can anyone point me in the right direction?
Thanks!
Mike
|
|
|
|

|
Okay, figured this out... 1) Define a custom WM_POSTCREATE #define WM_POSTCREATE WM_APP + 101 (This is needed because the first tab item added to the tab control is created at the wrong position, I presume because the menubar/toolbars have not been created yet. Following the TabbedSDISplitter example, we create a custom WM_POSTCREATE and then do a PostMessage at the end of OnCreate to cause OnPostCreate to be called after Create has returned. This also means that the actual tabs are added in OnPostCreate instead of in OnCreate.) 2) Changes to CMainFrame class CMainFrame : public CTabbedFrameImpl<CMainFrame, CDotNetTabCtrl<CTabViewTabItem>, CFrameWindowImpl<CMainFrame> >, public CUpdateUI<CMainFrame>, public CMessageFilter, public CIdleHandler { protected: typedef CTabbedFrameImpl<CMainFrame, CDotNetTabCtrl<CTabViewTabItem>, \ CFrameWindowImpl<CMainFrame> > baseClass; typedef CMainFrame thisClass; .... BEGIN_MSG_MAP(CMainFrame) ... MESSAGE_HANDLER(WM_POSTCREATE, OnPostCreate) ... 3) In CMainFrame::OnCreate, post a WM_POSTCREATE message PostMessage(WM_POSTCREATE, 0, 0); 4) Create the OnPostCreate method and code that method to add the tabs to the tab control, e.g.: LRESULT CMainFrame::OnPostCreate( UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/ ) { // create child views for the tab window m_FirstChildView.Create(m_hWnd); m_SecondChildView.Create(m_hWnd); m_iTabIndex = this->AddTabWithIcon(m_FirstChildView, _T("FirstView"), MAKEINTRESOURCE(IDR_MAINFRAME)); m_iTabIndex = this->AddTab(m_SecondChildView, _T("SecondView")); return 0; } Mike
|
|
|
|

|
How can I mix WTL with MFC? Are there any rules to respect? I want to use your Tabbed MDI in my MFC projct?
|
|
|
|
|

|
Hi,
I'm very like this framework and I'm using it to build a application, in my application
I need handle WM_CLOSE, so I try to use TabbedMDISave:
1. include TabbedMDISave.h in stdafx.h
2. include TabbedMDISave.cpp in stdafx.cpp
When I build it, I got 104 errors, following are some errors:
Error 1 error C2653: 'CTabbedMDIChildModifiedList' : is not a class or namespace name g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 65
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 65
Error 3 error C2550: 'CTabbedMDIChildModifiedList' : constructor initializer lists are only allowed on constructor definitions g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 67
Warning 4 warning C4508: 'CTabbedMDIChildModifiedList' : function should return a value; 'void' return type assumed g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 68
Error 5 error C2653: 'CTabbedMDIChildModifiedList' : is not a class or namespace name g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 70
Error 6 error C2653: 'CTabbedMDIChildModifiedList' : is not a class or namespace name g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 75
Error 7 error C2673: 'FinalRelease' : global functions do not have 'this' pointers g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 77
Error 8 error C2227: left of '->Clear' must point to class/struct/union/generic type g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 77
Error 9 error C2065: 'm_parentItem' : undeclared identifier g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 81
Error 10 error C2653: 'CTabbedMDIChildModifiedList' : is not a class or namespace name g:\demos\xpad\xpad\tabbingframework\tabbedmdisave.cpp 84
Error
My build enviroments : VS 2005 and WTL 8.0 , en-XP with sp2.
How can I do to fix it?
Very thanks.
|
|
|
|

|
Is there any simple one instead?
|
|
|
|

|
I'm a native Win32 Api Programmer, not so familiar with ATL and WTL.
My Question is is there any way to use your Tab Framework in win32 C/C++ API Application.
As a matter of fact i'm interested only by the DotNetTabCtrl,not by the whole framework.
Can i use the templates for that control, for example to build a DLL with WTL that export
functions as interface that can be used in win32 API application,functions for initializing and managing the DotNetTabCtrl.
Thanks for your answer in advance !
|
|
|
|

|
I use a form views in the tab control. The form view has controls (Edit, ListView, etc).
The problem is that tab navigation does not work between the controls.
Anyone has an idea how to fix that?
Thanks
Gil Rivlis
"...Everybody has opinions: I have them, you have them. And we are all told from the moment we open our eyes, that everyone is entitled to his or her opinion. Well, that's horsepuckey, of course. We are not entitled to our opinions; we are entitled to our _informed_ opinions. Without research, without background, without understanding, it's nothing. It's just bibble-babble...."
--- Harlan Ellison
|
|
|
|

|
Daniel, what is email address to contact you nowadays?
Tony
|
|
|
|

|
Like many other posters I saw your article and was very impressed with the look of the interface. I am fairly new to Windows programming and these examples have caused me to shift my focus from MFC to WTL.
To assist me with my learning process I decided to reproduce your 'DockingDemo' example within my own project. I have now got to the stage of having tabbed MDI children and a tabbed docking toolbar, although in my case I am deriving my docked views from CTreeViewCtrlEx.
Show/hide docked panes
I have noticed some strange behaviour when toggling the show/hide status on the docked panes and having checked back against my reference project it would seem you have the same issues with your DockedDemo example.
If I remove the tabs in reverse order (-5 -4 -3 -2 -1) and then put them back as specified below I get more docked panes than expected:
+1 Task List visible (docked bottom)
+2 Command pane visible (as expected, creates a tab with the Task List)
+3 Output pane visible (docked bottom, but not combined with tabs (1) & (2))
+4 Find pane visible (docked bottom, again not combined with either of the previous panes)
If I remove these in reverse order (-5 -4 -3 -2 -1) then I show the panes as:
+2 Task List and Command pane visible (tabbed in single window but not docked - top left corner of screen)
+3 Output pane visible (docked bottom)
+4 Find pane visible (docked bottom but not tabbed)
If I remove them in forward order (-1 -2 -3 -4 -5) I seem to get the reverse behaviour. (4) & (5) are tabbed together whilst the others form their own docked toolbars. If (4) is shown before (5) then both (4) and (5) show together and again they are undocked in the top left corner of the screen.
Message passing
I have attached a context menu, with the ID_FILE_NEW command, to my docked TreeView, but I have not managed to get the command back to the MainFrame for actioning. I have tried:
pPaneWindow->SetReflectNotifications(false);
and also tried setting FORWARD_NOTIFICATIONS on various classes but with no success.
I have overcome this by adding a member to my view class that gets initialised with CMainFrame:m_hWnd. This allows me to either:
1) Handle the message locally then send it back to the MainFrame for processing
2) Attach my context menu directly to the CMainFrame:m_hWnd
I'm sure this is not the ideal solution so any pointers in the right direction will be helpful.
Thanks in advance for any assistance.
|
|
|
|

|
I'm relatively new to WTL and I'm trying to create a dialog with a CTabCtrl on it that uses the CDotNetTabCtrl. I've tried a number of different things and I'm not getting anywhere. Can someone provide a short example of how to use CDotNetTabCtrl with an existing CTabCtrl on a dialog? TIA.
|
|
|
|

|
if there are hide pane
can not restore right
why???
sorry for my poor english
thank you very much
crystalice
|
|
|
|

|
I use this class like this (from Bjarke Vikøe's cool tab)
"To use it, place a Tab control on your dialog.
Add it as a member variable to your dialog implementation file...
CDotNetButtonTabCtrl m_ctlTab;
In the OnInitDialog() event handler, add the following line:
LRESULT OnInitDialog(UINT /*uMsg*/,
WPARAM /*wParam*/,
LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
...
m_ctlTab.SubclassWindow(GetDlgItem(IDC_TAB1));
...
}
Add the following reflection macro to your main message map:
BEGIN_MSG_MAP(CMainDlg)
...
REFLECT_NOTIFICATIONS()
END_MSG_MAP()
"
But the dialog is very ugly,Have I missed anything?
BTW:this is really great job.
|
|
|
|

|
Hi Daniel,
First of all, thank you for sharing such a great project.
Second, my question/request:
I was wondering if you could provide another example like the docking one that you provided, also with tabbed child windows. However, instead of an html frame/view, if you could show how to add views with controls such as trees, lists, or just forms (various other controls).
Thanks a lot,
P.S. I know this should not be hard given the demos you provided, but I just started learning WTL a couple days ago.
-----------------
Genaro
|
|
|
|

|
The best thing to do is to install the WTL wizard (setup*.js in the AppWiz folder), then use it to create different test projects where you choose different types of view classes. You can then take that view class, and use it as a tab view class.
-Daniel
|
|
|
|

|
Daniel, it looks like you made some updates and bugfixes to the code. Is it possible to get your updated version?
|
|
|
|

|
It looks like the current version of your Custom Tab Controls is not working anymore Sergey Klimov's updated WTL Docking windows that is available from his web site.
Your update would be greatly appreciated!
Btw, thank you very much for this awesome project!
|
|
|
|

|
I just found out about Sergey's new code. I'll take a look at what needs to change on my end to work with his new code. My guess is that I might need a changed version of VC7LikeCaption.h, but I'm not sure what else. I'm not sure when I would have new code for you to use though. I'm not convinced yet that I'll move all the samples I have where I use a modified version of his code to use his new version (which is just a snapshot, and not an official version yet). It looks like it does have some good things (especially the persistance changes), but there might not be all the fixes that the modified code has or there may be other compatibility issues.
As far as other changes I've made since the July update, there's not much, so I'll just list the diffs here:
-Daniel
|
|
|
|

|
Hi
I've noticed that the "ALT+SPACE" key combination does not work on any application that has a CTabbedChildWindow (or variant) in it - my applications and the demo applications that accompany this article. Could someone explain why this is and what can be done to fix this issue?
Thanks!
|
|
|
|

|
Hmm. I just tried this with the TabbedSDISplitter sample, and it seemed to work. Did you ever figure this out?
-Daniel
|
|
|
|

|
Hi,
When you changed Windows theme from XP Style to classic,
you can see CFlyingTab Control doesn't draw correctly
under Windows XP.
following step-by-step instructions for reproduce this problem.
1. Start /DockingDemo/Release/DockingDemo.exe
2. Change Windows Theme from XP theme to classic theme
( or from classic theme to XP theme).
3. You can see CFlyingTab Control Position is wrong, and
Tab Color(COLOR_BTNFACE ?) is wrong.
I guess it caused because toolbar height is different between
XP theme and classic theme. Recently you add WM_SETTINGCHANGES or WM_SYSCOLORCHANGE HANDLER but it doesn't seem to work well.
Is this reproduce in your system?
Thanks in advance.
Roy.
|
|
|
|

|
First of all, thanks for your great code
i want to bring a AutoHideDockingWindow Tab to the foreground,how shall I do it?
Best regards
James
|
|
|
|

|
senkiner wrote: First of all, thanks for your great code
Thanks
senkiner wrote: i want to bring a AutoHideDockingWindow Tab to the foreground,how shall I do it?
If you are using CTabbedAutoHideDockingWindow (from TabbedDockingWindow.h) and have a hold of a pointer, try calling pPaneWindow->Show();
You can also call Hide() to hide it, and AutoHide to auto hide it.
-Daniel
|
|
|
|

|
thanks very much!
and another problem is when you open more than 50 documents(MDI tabs),there will appear something strange,for example,the system menu will disappears,and you can not open a new document any more,is this a memory lack bug?
sorry for my poor english!
best regards!
|
|
|
|

|
That sounds like the symptom of a GDI leak or other GDI problem. Is this reproducable with one of the samples untouched, or is it in your own application? What operating system does it happen on?
-Daniel
|
|
|
|
 |
|
|
General News Suggestion Question Bug Answer Joke Rant Admin
|
An extensible framework for creating customized tabs in ATL/WTL, with a VS.NET-like tab control implementation, tabbed frames, tabbed MDI, and more.
| Type | Article |
| Licence | |
| First Posted | 13 Jun 2002 |
| Views | 812,498 |
| Bookmarked | 360 times |
|
|