2012-04-11 12 views
10

Muszę wiedzieć, czy użytkownik przytrzymuje klawisz ctrl podczas kliknięcia przycisku. ponieważ jest to przycisk, a nie postać Nie mogę użyć "selectionType" na rysunku itp. Czy istnieje prosty sposób to zrobić?Czy naciśnięty jest klawisz "Ctrl"?

Dzięki!

Odpowiedz

10

Jak o tym:

modifiers = get(gcf,'currentModifier');  %(Use an actual figure number if known) 
ctrlIsPressed = ismember('control',modifiers); 

Klasa postać posiada szereg przydatnych Current* właściwości, które są przydatne podczas obsługi wywołań zwrotnych. W ten sposób można pobrać aktualną pozycję myszy, wybrany obiekt graficzny i (jak tutaj) naciśnięte klawisze. Należą do nich: CurrentAxes, CurrentCharacter, CurrentKey, CurrentModifier, CurrentObject i CurrentPosition.

+0

Wygląda na to, że modyfikator cmd pojawia się po wydaniu klucza. Czy jest jakiś sposób, aby dowiedzieć się, które klawisze są aktualnie naciskane? – codekitty

1

Naciśnięcie klawisza escape powoduje ponowne zainicjowanie modułu CurrentModifier. Moje dotychczasowe rozwiązanie polegało na instruowaniu moich użytkowników (bezpośrednio w GUI), aby nacisnąć klawisz Escape, aby przywrócić domyślne zachowanie.

Ogólnie rzecz biorąc zachowanie Matlaba w trybie CurrentModifier wydaje się polegać na tym, że klawisz modyfikujący "przykleja się", dopóki nie nastąpi jedno z następujących: naciśnięcie innego modyfikatora, wybranie innego okna lub naciśnięcie klawisza Escape.

Powiązane problemy