Trenger ActiveX-kontroll for å legge Excel inn i en dialog

stemmer
5

Jeg bygger en import fra Excel -funksjon. Det må være i en DLL, kalles fra en ikke-MFC app. Har for å gi et bilde av regnearket som brukere kan dra en valgboksen rundt (for å velge celler), klikk deretter en IMPORT knapp, og har den riktige tingen å skje. Har du problemer med å få regnearket opp, har en knapp ved siden av den, og å ha det skje på en DLL.

Jeg gikk ruten fra en MFC dialog inne i en DLL, men ble blokkert i å prøve å få opp et OLE-klient for excel på et vindu i dialogboksen. støtter bare jeg fant for å vise Excel ved hjelp av OLE krevde en SDI. Jeg var i stand til å få automatisering funksjoner skal fungere, og jeg kunne lese cellene og male en falsk bilde av dem på dialog min ... men jeg er redd det kommer til å være i brudd på mine krav.

Så jeg prøvde å lage en SDI. Jeg var i stand til å skape en SDI som brakte opp Excel som et OLE-klient. Jeg var i stand til å håndtere utvalget change hendelse, og gå cellen data jeg trengte. Jeg ble hindret på dette punktet ved 2 eks:

  1. Kunne ikke gjøre dette SDI arbeid i en MFC DLL. Crash i CWinApp konstruktør, hevde at AfxGetThread var ikke null. Flyttet theApp å være lokalt scoped innenfor enkelt eksportert DLL-funksjonen, men likevel ikke kunne få det til å fungere, men med ulike symptomer: krasjet da lagt AFX_MANAGE_STATE (AfxGetStaticModuleState ()); til eksporterte DLL-funksjonen, hvis jeg ikke bruker det, OnInitInstance aldri ble inngått. Prøvde å legge til et kall til appens Run () -funksjonen, men det hjalp ikke. Jeg kan legge inn denne koden hvis noen mener de har en anelse om hva problemet er.

  2. Kunne ikke presentere en verktøylinje mens Excel klient elementet var aktiv. Jeg kunne sette min import (og andre alternativer) på menylinjen på toppen, men det er ikke tydelig nok. Selv en flytende verktøylinje ble lukket. Det er fornuftig at det ville gjøre dette, siden det ville være forvirrende å ha en verktøylinje til stede som ikke kunne utføre handlinger på det aktive element ... men i mitt tilfelle, er det et problem.

Så nå er jeg tenker jeg trenger å gå tilbake til dialogboksen tilnærming, og bygge en ActiveX-kontroll som bringer opp et Excel-regneark filen som skal importeres.

Må enten tillate meg å håndtere utvalget endring hendelse, eller må tillate meg å finne hva celler er valgt (eller ble sist velges hvis klikke på import -knappen i dialogboksen min fører de valgte cellene til å bli opphevet).

Det må også komme med rimelige konsesjonsvilkår, da dette vil bli brukt i en kommersiell program som er allment tilgjengelig for allmennheten.

Hvis noen vet om en quick fix til en av de tilnærmingene jeg hadde prøvd, ville det være nyttig også.

Håper noen kan hjelpe meg!

Publisert på 21/10/2008 klokken 22:17
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Hvis du bare ønsker å legge ned Excel, trenger du ikke noe.

Bare legge det inn i en standard OCX verten kontroll.

Svarte 23/10/2008 kl. 11:25
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more