22. november 2004 - 12:52Der er
9 kommentarer og 1 løsning
CView opdatering fra extern process i MS Visual C++
Jeg har et simpelt MFC program. I dette program opretter jeg en ekstra process, som hvert sekund læser fra COM porten, og opdaterer en database med det læste.
Men hvordan 'trigger' jeg en opdatering af mit CView object? Normalt kan man jo gøre det simpelt fra CDoc, men denne eksterne process har jo ikke adgang til update-håndtagene...
(Jeg har prøvet den grimme løsning med en global pointer til CDoc, men denne giver en assert fejl... - ikke overraskende... ;-D )
Så altså: En måde til at opdatere mit CView object fra en extern process...
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
Jeps, det var jeg også kommet frem til... Men så strander jeg lidt på modtagelsen af beskeden, da WaitForSingleObject "låser" mit program. Dvs. jeg kan ikke minimere/maksimere mit vindue, vælge menupunkter mv.
Modtagelsen af beskeden skulle gerne virke som en aktivering af et menu-punkt. Altså eksekvering af koden idet beskeden ankommer istedet for at hænge programmet indtil beskeden ankommer...
Du kan bruge RegisterWindowMessage til at lave en message id og ON_REGISTERED_MESSAGE til at fange beskeden (som alle andre beskeder).
Vær dog opmærksom at hvis du har en modal dialogbox kørende når beskeden bliver modtaget vil den forsvinde. Så er der ikke andre måder at fange beskeden på end at instalere en message hook, se SetWindowsHookEx().
Skal beskeden sendes fra en anden process (dvs et andet program) eller en anden tråd i det samme program ?
Tak - jeg kigger på dit eksempel. FYI: Det er en tråd i samme program - denne anden tråd er en timer process der kører ret ofte, så jeg må nok kigge nærmere på SetWindowsHookEx()...
Jeg lavede en version af programmet der bruger SetWindwosHookEx, men jeg kan ikke uploade til min hjemmeside i øjeblikket, send mig en mail hvis jeg skal sende den til dig.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.