webForumDet fria alternativet

Visa och dölja fönster

C/C++

4 svar · 305 visningar · startad av Reza

Medlem sedan feb. 2001107 inlägg
Frågan#1

Hej

Kan man använda sig av ShowWindow för att t.ex. visa ett fönster i ett annat program som tidigare har varit dold?

Jag har en dll fil och ifrån den skulle jag vilja dölja och visa programmet som ”startade” dll filen beroende på vad det är för tangent som trycks ner.
För detta använder jag mig av SetWindowsHookEX med WH_GETMESSAGE som argument. Jag har även provat med GetAsyncKeyState utan att lyckas.

Idag använder jag mig av en timer och GetAsyncKeyState i programmet, är detta den enda lösningen?

Medlem sedan apr. 20003 971 inlägg
#2

-Kan man använda sig av ShowWindow för att t.ex. visa ett fönster i ett annat program som tidigare har varit dold?
I dokumentationen står det ingenting om att det inte skulle gå.

Däremot kan du inte frigöra fönstret.
"A thread cannot use DestroyWindow to destroy a window created by a different thread."

-Jag har en dll fil och ifrån den skulle jag vilja dölja och visa programmet som ”startade” dll filen beroende på vad det är för tangent som trycks ner.
Varför? Du bör nog tänka över din design. En dll-fil ska man använda för att erbjuda funktioner till ett program, inte för att styra programmet.

AttachThreadInput kanske kan vara något.

Medlem sedan feb. 2001107 inlägg
#3

En dll-fil ska man använda för att erbjuda funktioner till ett program, inte för att styra programmet.

Självklart har du helt rätt men detta är en specialfall där dll filen SKA styra programmet för att minimera programmets funktionalitet och låta den vara beroende av dll filen.

I dokumentationen står det ingenting om att det inte skulle gå.

Det fungerar inte för mig!!?? :(

Medlem sedan apr. 20003 971 inlägg
#4

Då är det kanske något annat fel i koden.

Du kanske har ett felaktigt handtag eller koden kanske aldrig körs.

Medlem sedan okt. 20013 217 inlägg
#5

Om du har Developer Studio installerat så är Spy++ ett bra verktyg då man håller på med fönster.

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)