Toon posts:

[VC6] DialogBars via classwizard *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik probeer al geruime tijd zonder al te veel succes met MFC een toolbar met een TreeView control (en later eventueel andere controls) toe te voegen aan mijn applicatie, zonder al te veel succes.

Het zit zo: Ik heb een MDI-applicatie waaraan ik een dockable toolbar wil toevoegen met daarop een treeview control, ongeveer zoals ClassView in Visual C++ 6.

De netste methode lijkt mij het gebruik van een DialogBar. Door een IDD_DIALOGBAR resource te maken, en aan CMainFrame een membervariabele CDialogBar m_wndDlgBar toe te voegen (en vervolgens m_wndDlgBar.Create() en de nodige DockControlbar functies aan te roepen), is het mogelijk deze dialogbar aan mijn venster te hangen.

Mijn probleem is echter als volgt: Om te beginnen wil de ClassWizard telkens een nieuwe class maken op basis van mijn nieuwe dialoogvenster, zoals gebruikelijk. Dit wil ik wel doen, maar ik weet niet wat ik dan als base class moet kiezen. Ik kan hem wel van CDialog laten inheriten, maar die heeft niet dezelfde Create() method als CDialogBar, zodat ik er geen dockable toolbar van kan maken, enkel een standaard dialoogvenster. En van CDialogBar kan ik weer niet inheriten.

MSDN zegt dat het bij DialogBars niet gebruikelijk is dat je een nieuwe class maakt voor de dialoogresource, maar vermeldt vervolgens niet wat je er dan wel mee zou moeten doen. Ik kan Select Existing Class kiezen, maar dan? Moet ik hem toevoegen aan CMainFrame? Wat moet ik er mee doen?

Tweede probleem is dat ik via de resource editor wel controls op mijn dialogbar kan plaatsen, maar vervolgens kan ik er niets mee. Ik zou graag, zoals normaal gesproken bij dialoogvensters, via de ClassWizard MFC membervariabelen aan de controls hangen (CEdit voor een editbox, CTreeCtrl voor de Treeview, etcetera), maar omdat er geen class voor de dialogbar is kan ik deze membervariabelen nergens aan toevoegen.

Hoe is het mogelijk op de normale manier met deze DialogBars om te gaan? Hoe maak ik de juiste class aan, zodat ik de gewenste Create() functie heb waarmee ik het ding als toolbar kan toevoegen? Iemand een idee?

Verwijderd

Topicstarter
Okee, never mind, mensen, ik ben er inmiddels achter hoe en wat.

Aangezien niemand die deze thread gelezen heeft het blijkbaar weet, en om toekomstige gebruikers van de search van dienst te zijn: Het is inderdaad de bedoeling een nieuwe class voor je DialogBar te maken. Als base class gebruik je CDialog, en vervolgens pas je de include- en sourcefiles van die class zo aan dat 'ie van CDialog inherit, maar van CDialogBar.

Knowledge Base artikel 185672 beschrijft precies hoe het in elkaar steekt.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 02-06 09:44

curry684

left part of the evil twins

Hulde dat je de oplossing post :)

Professionele website nodig?