Domanda

La mia applicazione funziona come un plug-in all'interno di un'altra applicazione finestra. Così, la mia finestra, spesso non ha la messa a fuoco. Ora, se qualcuno si muove il mouse su un pulsante / menu e scatta una volta, tutto ciò che fa è impostato attenzione alla mia finestra. Poi (s) ha bisogno di fare di nuovo clic per ottenere l'effettiva funzionalità tasto.

Questo è un fastidioso inconveniente, ma mi piacerebbe sbarazzarsi di esso. Per prima cosa ho provato sostenendo attenzione ogni volta che il mouse entra il mio spazio di dialogo, ma questo si è rivelato ancora più fastidioso. Quindi quello che vorrei fare è ripetere il clic del mouse, in modo che appaia come se un solo clic sia mutata attenzione e premette il pulsante.

Ovviamente dovrei fare solo quando il clic ha portato in un SetFocus, altrimenti verrà eseguito la funzione del pulsante due volte.

Qualche suggerimento?

Profondamente ed eternamente in debito, David

È stato utile?

Soluzione

Mouse simulazione click sembra un po 'disordinato qui, ma si può sempre simulare qualsiasi clic del mouse in qualsiasi (X, Y) tramite la SendInput API attraverso P / Invoke:

[DllImport("user32.dll", SetLastError=true)]
static extern uint SendInput(uint nInputs, INPUT [] pInputs, int cbSize);

È anche possibile tergiversate moltiplicazione / generazione di messaggi WM_MOUSEXXXXX direttamente, ma ho giocato con questo molto e credetemi quando dico che è un kludge totale.

Altri suggerimenti

Vorrei suggerire che si mantiene il comportamento come è; questo è il comportamento standard per il sistema operativo e la sua modifica potrebbe rompere le linee guida di usabilità standard.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top