Zum Inhalt springen

Loki876

Mitglieder
  • Gesamte Inhalte

    65
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Loki876

  1. Hi... Ich moechte/muss in einem Dialog der Klasse CDialog auf Daten die in der Klasse ApplicationDoc gespeichert sind. Habe es mit untem dem code probiert aber da kommt beim compilieren die Fehlermeldung, dass er die Befehle(z.B. GetDocumet) nicht kennt. CApplicationDoc* pDoc = static_cast<CApplicationDoc*>(GetDocument()); Also meine Frage: Wie kann ich auf Variablen von ApplicationDoc in der Klasse CDialog zugreifen? Gruss!
  2. Hi. Ich moechte in meinem Programm von meiner ApplicationDoc-Klasse aus ein Listenfeld in einem anderen DialogFenster(CBatchList mit Basisklasse CFormView) loeschen um es danach wieder von ApplicationDoc aus zu fuellen. Der Liste selbst habe ich als Control Membervariable m_ctrlBatchList zu gewiesen. Dazu habe ich: POSITION pos=GetFirstViewPosition(); CBatchList* pBatchList = reinterpret_cast<CBatchList*>(GetNextView(pos)); pBatcgList->m_ctrlBatchList.DeleteAllItems(); Code: POSITION pos=GetFirstViewPosition(); CBatchList* pBatchList = reinterpret_cast<CBatchList*>(GetNextView(pos)); pBatchList->m_ctrlBatchList.DeleteAllItems(); Aber es tut sich nichts, sprich die liste wird nicht geleert. Beim Debuggen sehe ich, dass der Wert 0 zurueck gegeben wird, d.h. die operarion war nicht erfolgreich. muss ich vielleicht den pointer anders zu weisen? danke fuer jede hilfe. gruss thomas
  3. was du nicht sagst. also ganz doof/unwissend bin ich jetzt auch wieder nicht.
  4. sorry, ich bin kein programmierer fuer mich ist das alles andere als banal. das ganze ist teil meiner dipl.arbeit. die timeline muss nicht viel koennen. ich muss ihr EditUnits(kleinse Schnitteinheit, z.B. ein Frame) zuweisen koennen. die zeitlachse sollte im Timeoce format skaliert sein. ich muss ihr clips(mit einer bestimmten dauer) zuweisen koennen. am besten waere es wenn ich die clips noch jeweils anklicken koennte um mir metadaten(Dauer, codec, framerate, etc.) der clips anzeigen lassen zu koennen.
  5. das habe ich auch feststellen muessen. deswegen suche ich nach alternativen loesungen.
  6. Also so wie ich es mir vorstelle funktioniert es doch mit DirectShow leider nicht, daher bin ich immer noch auf der suche nach einer loesung. bei codeproject und codeguru bin ich leider nur auf viele leute getroffen, die das selbe problem haben aber keine loesungen. ich versuche eine art EDL(eine Schnittliste, d.h. eine beschreibung wie ein film geschnitten wurde) in einer timeline(mit audio und videotracks) zu visualisieren. Ich habe die information vereinfacht gesagt in der form: Videoclip1 von sekunde 0 bis 10 Videoclilp2 von sekunde 10 bis 15 usw. ... Hat jemand ne idee wie ich sowas mit VC++ realisieren kann?
  7. hat sich erledigt. meine Lib war wohl veraltet. hab jetzt ne aktuellere und es funktioniert.
  8. soweit ich weiss ist dass die STRMIIDS.lib
  9. ich probiere es jetzt mit directShow hinzubekommen (http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/htm/constructingatimeline.asp) und habe den quellcode nun in meine Klasse Timeline eingefuegt. bekomme aber beim compilieren 8 unaufgeloeste externe symbole angezeigt. z.B. Timeline.obj : error LNK2001: Nichtaufgeloestes externes Symbol _IID_IAMTimelineTrack #include "dshow.h" #include "qedit.h" ... // Preview a timeline. void PreviewTL(IAMTimeline *pTL, IRenderEngine *pRender) { IGraphBuilder *pGraph = NULL; IMediaControl *pControl = NULL; IMediaEvent *pEvent = NULL; // Build the graph. pRender->SetTimelineObject(pTL); pRender->ConnectFrontEnd( ); pRender->RenderOutputPins( ); // Run the graph. pRender->GetFilterGraph(&pGraph); pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl); pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); pControl->Run(); long evCode; pEvent->WaitForCompletion(INFINITE, &evCode); pControl->Stop(); // Clean up. pEvent->Release(); pControl->Release(); pGraph->Release(); } void CTimeline::OnInitialUpdate() { CFormView::OnInitialUpdate(): // Start by making an empty timeline. IAMTimeline *pTL = NULL; CoInitialize(NULL); CoCreateInstance(CLSID_AMTimeline, NULL, CLSCTX_INPROC_SERVER, IID_IAMTimeline, (void**)&pTL); // GROUP: Add a video group to the timeline. IAMTimelineGroup *pGroup = NULL; IAMTimelineObj *pGroupObj = NULL; pTL->CreateEmptyNode(&pGroupObj, TIMELINE_MAJOR_TYPE_GROUP); pGroupObj->QueryInterface(IID_IAMTimelineGroup, (void **)&pGroup); // Set the group media type. This example sets the type to "video" and // lets DES pick the default settings. For a more detailed example, // see "Setting the Group Media Type." AM_MEDIA_TYPE mtGroup; ZeroMemory(&mtGroup, sizeof(AM_MEDIA_TYPE)); mtGroup.majortype = MEDIATYPE_Video; pGroup->SetMediaType(&mtGroup); pTL->AddGroup(pGroupObj); pGroupObj->Release(); // TRACK: Add a track to the group. IAMTimelineObj *pTrackObj; IAMTimelineTrack *pTrack; IAMTimelineComp *pComp = NULL; pTL->CreateEmptyNode(&pTrackObj, TIMELINE_MAJOR_TYPE_TRACK); pGroup->QueryInterface(IID_IAMTimelineComp, (void **)&pComp); pComp->VTrackInsBefore(pTrackObj, 0); pTrackObj->QueryInterface(IID_IAMTimelineTrack, (void **)&pTrack); pTrackObj->Release(); pComp->Release(); pGroup->Release(); // SOURCE: Add a source to the track. IAMTimelineSrc *pSource = NULL; IAMTimelineObj *pSourceObj; pTL->CreateEmptyNode(&pSourceObj, TIMELINE_MAJOR_TYPE_SOURCE); pSourceObj->QueryInterface(IID_IAMTimelineSrc, (void **)&pSource); // Set the times and the file name. pSourceObj->SetStartStop(0, 50000000); BSTR bstrFile = SysAllocString(OLESTR("C:\\example.avi")); pSource->SetMediaName(bstrFile); SysFreeString(bstrFile); pSource->SetMediaTimes(40000000, 140000000); pTrack->SrcAdd(pSourceObj); pSourceObj->Release(); pSource->Release(); pTrack->Release(); // Preview the timeline. IRenderEngine *pRenderEngine = NULL; CoCreateInstance(CLSID_RenderEngine, NULL, CLSCTX_INPROC_SERVER, IID_IRenderEngine, (void**) &pRenderEngine); PreviewTL(pTL, pRenderEngine); // Clean up. pRenderEngine->ScrapIt(); pRenderEngine->Release(); pTL->Release(); CoUninitialize(); }
  10. Hi, ich muesste einem dialogfenster(CFormView) ein Timeline, wie von Videoeditingsystemen, hinzufuegen. Hat jemand von euch vielleicht erfahrung damit oder kennt jemand ne webseite die sich damit beschaeftigt? gruss thomas
  11. hab den fehler gefunden. danke nochmal an alle. brauch schon ein paar mehr informationen. und diese sind objektorientiert gespeichert werden und recht verschaltet, habe ich mich deswegen bis jetzt zur den verwendung von arrays entschieden. Dazu kommt, dass nicht jede AAF datei gleich aufgebaut ist und die gleiche anzahl an Objecten(Mobs genannt) vorhanden sind.
  12. versuche es mal so knapp und som einfach wie moeglich su erklaeren. ich schreibe einen analyzer fuer AAF(advanced authoring format), in der SDK gibt es einen WIN32 basierendes modul, dass die information eines AAF files als textdump ausgibt. dieser dump gilt es nun zu analysieren. diese dump habe ich nun in einen textarray geschrieben der nach schluesselworten durchsucht wird und bestimmt attribute(bei AAF properties genannt) schreibe ich heraus, z.B. suche ich nach Videodescriptoren und schreibe FrameRate,Resolution, Codec, etc... in ein passendes Textarray. Auf diese Textarrays, und die properties die dort drin stehen, muss ich spaeter zu greifen, um z.B. spaeter die Information in einer timeline darzustellen(mit allen Video und Audioclips, Effekten, und Transitions). Aber da in diesen AAF file sehr viel information und sehr komplexes beschreiben wird brauche ich viele dieser Textarrays. Die Fehlermeldung ist: Die Anweisung "0x5f477076" verweist auf Speicher in "0x33bc454c". Der Vorgang "read" konnte nicht auf dem Speicher durchgefuehrt werden.
  13. Hi, ich schreibe ein Programm dass einen Textdump nach bestimmten schluesselwoertern durchsucht und information die in diesem dump stehen herausliest um diese dann spaeter zu interpretieren. Dazu schreibe ich die informationen in Textarrays um spaeter wieder auf die informationen zugreifenzukoennen. Nun mein problem ist, dass ich sehr viele (und recht grosse) Textarrays dafuer brauche. Und anscheinend zu viel fuer c++. Jedenfalls bekomme ich beim ausfuehren meines programs seitdem ich ein weiteres array hinzugefuegt habe eine fehlermeldung. Gibt es eine moeglichkeit wie ich in C++ mehr speicher fuer meine variablen zuweisen kann oder waere es ratsamer das alles mit einer Datenbank zu realisieren? gruss Thomas
  14. Hat funktioniert. vielen dank fuer die hilfe. gruss Thomas
  15. ich moechte von aus meiner Doc funktion heraus diese einrtaege einfuegen. mein program analysiert einen textdump und soll dann wenn es bestimmt eintraege gefunden hat diese in die Baumansicht einfuegen.
  16. Ok, dann lass mich die frage anders formulieren: Wie setzte ich in der Funktion in CAnwendungDoc einen Pointer auf das gewuenschte Fenster um dann dort meine eintraege hinzuzufuegen?
  17. Guten Morgen, ich habe einen Fenster(CFormView) mit einer Baumansicht in mein Hauptfenster eingefuegt, und diese Baumsicht auch unter CTreeForm::OnInitialUpdate() mit eintraegen gefuellt. Nun muss/will ich aber in einer Funktion die in CAnwendungDoc aufgerufen wird, eintraege hinzufuegen und konnte bis jetzt noch nicht herausfinden wie die das am geschicktesten bewerkstellige. Kann mir da jemand einen tipp geben? Gruss thomas
  18. Habs grad selbst geloest. Hab einfach pDoc->UpdateAllViews(NULL) eingefuegt.
  19. Hi. Ich habe in meinem Programm das Hauptfenster in mehrere Teilfenster unterteilt, u.a. eine Baumansicht und ein Statusfenster(beides CFormView). ich moechte nun wenn die auswahl in dem Baum wechselt den namen der neuen auswahl in dem statusfenster schreiben. dazu ermittle ich zu naechst den namen der auswahl lege in ApplicationDoc ab(wo er dann von dem Statusfenster rausgelesen wird). void CTreeForm::OnSelchangedTree(...) { ... HTREEITEM selection; CString item; selection = m_ctrlTree.GetSelectedItem(); item = m_ctrlTree.GetItemText(selection); CApplicationDoc* pDoc = static_cast<CApplicationDoc*>(GetDocument()); ASSERT(Doc); pDoc->m_sCurrentSelection = item; An dieser Stelle muss ich jetzt das OnUpdate des Statusfenster aufrufen. Muesste aber dazu ja einen Pointer auf das Fenster setzen. (Korregiert kich falls ich falsch liege). Nun meine Frage: mit welchem befehl setzte in einen Pointer auf ein bestimmtes Fenster? gruss thomas
  20. Hab es grad hinbekommen. Hab in CApplicationDoc::OnOpenFile den Dateinamen an die Membervaribale m_sFile uebergeben, Und in die Funktion OnUpdate(...) folgendes eingefuegt: CApllicationDoc* pDoc = static_cast <CApplicationDoc*>(GetDocument); ASSERT(pDoc); m_sFileName = pDoc->m_sFile; Danke nochmals fuer alle beitraege. Gruss
  21. hab es mal eingetipt. Bei GetDlgItem verlangt er nen 2 parameter. Unter msdn.microsoft.com steht: HWND GetDlgItem( HWND hDlg, int nIDDlgItem ); was sollte ich fuer hDlg annehmen?
  22. ja trotzdem danke. und ne alternative rangehensweise wuerde dir jetzt spontan auch nicht einfallen? so rein zufaellig...
  23. hab ich gemacht. passiert trotzdem nix. Ich weiss Is aber nicht wie wenn ich es nicht vorher selbst versuche rauszubekommen und meine programmiertechnischen probleme zu loesen. Aber bei der sache hier, steh ich vor einem raetsel.
  24. Nein, noch nicht. welche Parameter schreibe ich dann fort rein? die selben die auch schon bei CDlg::OnUpdate(...) deklarierrt(oder definiert wie auch immer) werden? Sorry wenn meine fragen etwas diletantisch wirken, bin kein programmierer. Muss es aber fuer meine Diplom Arbeit.
  25. Zu 1.) Das habe ich schon. Trotzdem danke! Zu 2.) Die habe ich nur hier CDlg genannt. In meinem Programm heisst sie anders. Hab sie hier so genannt weil ich dir Form mit dem Dialog Editor erstellt habe.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...