Originally posted by: Viktor
Your control is very good. I found some bugs and difficulties using it but You already know about them from other comments.
Here is my conceptual question: Why don't You like standard notification message architecture? I suppose it'll be better to send WM_NOTIFY and pass to the owner a pointer to a custom notification structure. Different messages can also have different structures to notify. It's necessary to provide unique notification codes for all them. This mechanism is implemented in such standard window controls as tree view, list view, edit box and many others. It is more universal.
You have updated Your page last time on 4th of August 1998. Many people wait for new issues. Please make it if You still work with the control and have something to distribute.
Thank You.
Originally posted by: KangSeungBum
i need MDI version.
ReplyOriginally posted by: Mark Johnson
<CODE>
If CLeftView was a CView with the OutBar Control (The CRightView being the CGfxListCtrl) and being called as above, the result would be the same. But interaction between both would be much easier to realise inside the Document. It would also allow multiple copies (MDI Version) to be called avoiding Document conflicts.
I would be very grateful for an answer and if possible an example of a CGfxOutBar in a Cview.
if Is it possible to use CGfxOutBar in a CView or CFormView?
(!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100, 100), pContext) ||
!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(100, 100), pContext))
{}
</CODE>
Originally posted by: Victor R�der
if (!wndSplitter.CreateView(0, 1, pContext->m_pNewViewClass, CSize(0,0), pContext)) return FALSE;
(this line stands in CMainframe::OnCreateClient(....))
How can I solve this problem?
By the way, this control is one of the best I've seen!
Don't forget: May the force be with you!
Vic
I've tried to display this control in a MDI-Application.
When I execute the program an error comes up.
I've found out that this line produce this error:
There's is another one written by CodeJockey (or someone among CodeJockey) or is it the same one?
Originally posted by: Marc L.
Nice control.. only two things :
when we use animation for changing folder, only the selected folder scrolls. If we have 5 folders, and the selected is the first one (0), and we choose the 5th (4), only the 5th folder scrolls to the bottom of the first one (0) and then all the others appear before the 5th folder.
still with animation, when we change folder, the bitmap (From) scrolls down at the beginning and the bitmap (To) scrolls up when the selected folder arrived to the other folder.
Alp!
Marc
Reply
Originally posted by: Claus
Dear Juri Apollonio,
I found your program in the Internet. It’s really marvellous and very helpful!! I’ve only got one problem at the moment: How can I change the view in the right pane? I found some information in the Internet, but I am not able to adjust this information. After the first initiation the program always crashes. It would be helpful to get a clue.
Thank you in advance.
Claus
Reply
Originally posted by: Dion Loy
void CGfxOutBarCtrl::OnSize(UINT nType, int cx, int cy)
CWnd::OnSize(nType, cx, cy);
int t, max = GetFolderCount();
for (t = 0; t < max; t++)
/* ADD THIS TO PROPERLY SET bUpArrow/bDownArrow. */
bUpArrow = (f > 0);
When resizing the outbar ctrl in a docked control bar, the bUpArrow and bDownArrow were false and never set to true (as done in OnPaint()). This was fixed by adding the following to OnSize:
{
bUpArrow = bDownArrow = false;
CRect rc;
GetInsideRect(rc);
{
CBarFolder * pbf = (CBarFolder *) arFolder.GetAt(t);
CWnd * pc = GetFolderChild(t);
if (pc) pc->SetWindowPos(0, rc.left, rc.top, rc.Width(), rc.Height(), SWP_NOZORDER);
}
if (max > 0) {
int f, l;
f = l = 0;
GetVisibleRange(iSelFolder, f,l);
bDownArrow = (l < GetItemCount() - 1);
}
/* END ADDITIONS. */
}
Reply
Originally posted by: Frank
gratulations to your control, Iuri.
But unfortunately I want to change the views in the right
I try to switch with the following lines:
void CMainFrame::SwitchToView(UINT nCmdID)
CRect cr;
switch (nCmdID)
default:
pContext.m_pNewViewClass=RUNTIME_CLASS(CViewManuell);
m_wndSplitter.DeleteView(0, 1);
default:
pView->GetParentFrame()->RecalcLayout();
I tried some other posibilities found in codeguru, but none of them works.
Who knows how to do that switch ??
Thank you for anz help, because up to now I spent some days to solve it, vainly.
Thanks
Frank
Hallo together,
With it I was able to built an outstanding UI.
pane. That for I built some views derived from the
CFormView Class.
{
if (nCmdID == m_nCurrentTask)
return; // das ist schon aktiv...
GetClientRect(&cr);
CSize paneSize1(5 * cr.Width() / 6, cr.Height());
CCreateContext pContext;
{
case 0:
pContext.m_pNewViewClass = RUNTIME_CLASS(CView1);
break;
case 1:
pContext.m_pNewViewClass = RUNTIME_CLASS(CView2);
break;
case ...
ASSERT(0);
return;
}
pContext.m_pCurrentDoc = (CMyApp*)AfxGetApp()->m_pDoc;
pContext.m_pCurrentFrame = NULL;
pContext.m_pNewDocTemplate = pContext.m_pCurrentDoc->GetDocTemplate();
pContext.m_pLastView = NULL; // (CView*)m_wndSplitter.GetActivePane();
// AddView
m_wndSplitter.CreateView(0, 1, (pContext.m_pNewViewClass) , paneSize1, &pContext);
switch (nCmdID)
{
case 0:
CView1 *pView=(CView1*)m_wndSplitter.GetPane(0,1);
break;
case 1:
CView2 *pView=(CView2*)m_wndSplitter.GetPane(0,1);
break;
case ...
ASSERT(0);
return;
}
m_wndSplitter.RecalcLayout();
pView->OnInitialUpdate();
m_wndSplitter.SetActivePane(0,1);
}
When entering the function SwitchToView the internal variable
"m_viewList" is set correct. After "DeleteView" ist has an undefined
value and as a result of that, the "CreateView" function fails with an
ASSERT error.
Originally posted by: Jocelyn
Could you please help?
ReplyOriginally posted by: Patrick Sherrill
This is a very nice control(much easier to implement than Dundas). How would I implement multiple recordviews wired to the item options in the control in an SDI app?
Reply