Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Explorer ähnliches interface

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.09.2003, 18:51 Uhr
~andreasK
Gast


Hallo will in meine Anwendung so was wie im Explorer einbauen, so dass ich auch durch die Ordner suchen kann. Jetzt weis ich aber nicht wie ich das anstelle, dass ich den TreeView auch nach rechts oder links dehnen kann kann mir da jemand sagen, wie ich das mache, absolut null schimmer wie das gehen soll?

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.09.2003, 20:09 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
SDI -> CSplitterWnd -> CView & CListView -> MoveWindow in WM_SIZE -> WIN Api nutzen, um Ordner anzuzeigen

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.09.2003, 21:02 Uhr
~andreasK
Gast


Hast da vielleicht ein Code Beispiel oder so was?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.09.2003, 21:57 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Einfach eine SDI Erstellen. Dann eine allgemeine Klasse von CSplitterWnd ableiten (in meinem Sample CMultiSplitter)

C++:
BOOL CMultiSplitterWnd::ReplaceView(int row, int col, CRuntimeClass *pViewClass, SIZE size)
{
CCreateContext context;
BOOL bSetActive;    
  
if ((GetPane(row,col)->IsKindOf(pViewClass))==TRUE)
       return FALSE;
                    
CDocument * pDoc = ((CView *)GetPane(row,col))->GetDocument();
CView * pActiveView = GetParentFrame()->GetActiveView();
if (pActiveView == NULL || pActiveView == GetPane(row,col))
    bSetActive = TRUE;
else
    bSetActive = FALSE;

    
((CView *) GetPane(row,col))->DestroyWindow();
                
context.m_pNewViewClass = pViewClass;
context.m_pCurrentDoc = pDoc;
context.m_pNewDocTemplate=NULL;
context.m_pLastView=NULL;
context.m_pCurrentFrame=NULL;
    
CreateView(row,col,pViewClass,size, &context);
      
CView* pNewView= (CView *)GetPane(row,col);
  
if (bSetActive==TRUE)
       GetParentFrame()->SetActiveView(pNewView);
  
RecalcLayout();
GetPane(row,col)->SendMessage(WM_PAINT);
    
return TRUE;
}


Damit kannst du Views sitchen

C++:
CMainFrame *pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_wndSplitter.ReplaceView(0,1,RUNTIME_CLASS(CFileView),CSize(100,100));


in CMianFrame OnCreateClient einfügen

C++:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
if(!m_wndSplitter.CreateStatic(this, 1, 2) ||
    !m_wndSplitter.CreateView(0,0,
    RUNTIME_CLASS(CDirTreeView),
    CSize(160,0), pContext) ||
    !m_wndSplitter.CreateView(0,1,
    RUNTIME_CLASS(CFileView),
    CSize(0,0),pContext))
{
      return false;
}

      return true;
}



Den Rest würd ich per Win API machen
http://schueler.bulme.at/~vodep_mi/Dir.zip

Es gibt das ganze aber auch schon fertig auf codeproject
Aber bis man da den Durchblick hat, ist man mit "made by hand" schneller unterwegs

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: