» »

MFC, CHtmlView, CDockablePane in 100 EUR

MFC, CHtmlView, CDockablePane in 100 EUR

d156 ::

Evo. Imam nov problem. Poskusam embeddat CHtmlView v CDockablePane. Ker sem porabil ze nekaj casa na problemu, sem se odlocil, da je cas za kaksno zunanjo pomoc. Tisti, ki mi pomaga z resitvijo, dobi 100 EUR.

Problem sem opisal ze na tem forumu, tako da podajam samo link:
http://www.experts-exchange.com/Program...

VS2008 project je pa tukaj: http://www.kulone.com/contrib/crashproj...

Uglavnem program crasha, ko ga zaprem.

d156 ::

Se vedno nisem nasel resitve.

Ajde, 150 EUR za resitev :)

*ziga* ::

Poglej PM.

snow ::

Mogoče spraviš tvoj problem sem: http://www.topcoder.com/wiki/display/tc...
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

d156 ::

Mogoče spraviš tvoj problem sem: http://www.topcoder.com/wiki/display/tc...


Mogoce, ceprav zgleda precej prevec web. Ce bi le bilo bolj MFC ...

Ampak hvala za idejo, bom se mal pogledal, ce imajo kaksne bolj MFC specificne projekte ...

BlueRunner ::

Ali je teh 150EUR še aktualnih?

d156 ::

Ali je teh 150EUR še aktualnih?


JA!

BlueRunner ::

OK. Odgovor gre tako:
- V MFC-ju živijo CDocument-CView pari v svoji lastni hirearhiji, ki izvira iz CFrameWnd.
- V CDockablePane si uporabil CHtmlView, ki je naslednik razreda CView, pri temu pa je CDockablePane izven CFrameWnd hirearhije.
- Posledica je, da pride pri destrukciji do napake, ker se objekti uničujejo malo drugače, kot se bi sicer.
- Nekaj malega o tej splošni težavi najdeš tukaj. Zapletel si se samo v temu, da nisi ugotovil, da to prizadane naslednike CView in ne samo CHtmlView.

Možni rešitvi sta dve. Ena je, da v CDockablePane ne vstaviš neposredno CView, ampak vstaviš svojega naslednika CFrameWnd, nato pa v tem CFrameWnd uporabiš CHtmlView, ki ga potrebuješ. Ta pristop je uporaben, če dejansko potrebuješ in želiš uporabiti CDocument-CView par.

Druga rešitev je, da narediš kopijo kode za razred CHtmlView in ga namesto iz CView izpelješ iz CWnd. Ta pristop je uporaben, če te funcionalnost, ki jo ponuja CDocument ne zanima, temveč bi rad samo prikazoval HTML z čim manj zapletanja.

Primer VS2008 projekta, kjer sem ti razred CHtmlCtrl že pripravil, lahko preneseš od tukaj. Ta razred pa lahko potem uporabiš tudi znotraj katerega koli drugega razreda v MFC. Recimo na CDialog, CFormView, ker več ni vezan na CFrameWnd.

Podatke za nakazilo dobiš na ZS.

schtr4jh ::

Podatke za nakazilo dobiš na ZS.

Hladnokrvno. To sm čaku. =)

d156 ::

OK. Odgovor gre tako:
- V MFC-ju živijo CDocument-CView pari v svoji lastni hirearhiji, ki izvira iz CFrameWnd.
- V CDockablePane si uporabil CHtmlView, ki je naslednik razreda CView, pri temu pa je CDockablePane izven CFrameWnd hirearhije.
- Posledica je, da pride pri destrukciji do napake, ker se objekti uničujejo malo drugače, kot se bi sicer.
- Nekaj malega o tej splošni težavi najdeš tukaj. Zapletel si se samo v temu, da nisi ugotovil, da to prizadane naslednike CView in ne samo CHtmlView.

Možni rešitvi sta dve. Ena je, da v CDockablePane ne vstaviš neposredno CView, ampak vstaviš svojega naslednika CFrameWnd, nato pa v tem CFrameWnd uporabiš CHtmlView, ki ga potrebuješ. Ta pristop je uporaben, če dejansko potrebuješ in želiš uporabiti CDocument-CView par.

Druga rešitev je, da narediš kopijo kode za razred CHtmlView in ga namesto iz CView izpelješ iz CWnd. Ta pristop je uporaben, če te funcionalnost, ki jo ponuja CDocument ne zanima, temveč bi rad samo prikazoval HTML z čim manj zapletanja.

Primer VS2008 projekta, kjer sem ti razred CHtmlCtrl že pripravil, lahko preneseš od tukaj. Ta razred pa lahko potem uporabiš tudi znotraj katerega koli drugega razreda v MFC. Recimo na CDialog, CFormView, ker več ni vezan na CFrameWnd.

Podatke za nakazilo dobiš na ZS.


Koncno se je najdu junak :)

Sprobal tvojo resitev, in dela! :)

Se tudi drugace ukvarjas s win32, mfc programiranjem... ?

lp, Damjan

Zgodovina sprememb…

  • spremenil: d156 ()

BlueRunner ::

Včasih sem se, sedaj pa poklicno več nisem programer. Tako, da tozadevno samo počivam na lovorikah stare slave in se občasno preprekam o teoriji in filozofiji programiranja ;)

d156 ::

No ja, mogoce te prepricam se za kaj. Sedaj imam ze nov problem, tokrat je nagrada 500 eur. Ubistvu dva popoldneva dela :)

Bom napisal vec o problemu bodisi danes ali kaksen dan kasneje...

d156 ::

Evo odprl sem novo temo o ze omenjeni zadevi: MFC, deskband/tray in 500 EUR


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

MFC, deskband/tray in 500 EUR

Oddelek: Programiranje
171437 (1039) d156
»

c++ zapis funkcije

Oddelek: Programiranje
81133 (1056) Vesoljc
»

VS C++

Oddelek: Programiranje
342076 (1108) Vesoljc
»

Win32 API in C++

Oddelek: Programiranje
131493 (1364) Monster
»

OpenGL orr v ansi c

Oddelek: Programiranje
121552 (1340) igor12

Več podobnih tem