View Single Post
Old 04-17-2015, 02:07 PM   #46
Solecismic
Solecismic Software
 
Join Date: Oct 2000
Location: Canton, OH
Quote:
Originally Posted by Draft Dodger View Post
and every back click seems to be linked to a system beep which absolutely drives me (and anyone else in the room) up the wall.

I don't like these, either. I've actually spent the last couple of days trying to figure out how to:

A) Handle keyboard accelerators. Sometimes they work, sometimes they don't.

B) De-beep the game entirely. It was never my intent to have anything beep for any reason.

It turns out that neither of these issues are easy ones in the slightest.

I use MFC, which Microsoft wrote to provide a set of windowing controls that supported a native windowing experience. Over time, I've increasingly customized them, but they have their limitations.

For whatever reason, Microsoft wants applications to make a system noise (it can be easily changed to the null .wav file, which many people do) when an action is attempted that can't be performed at that time. Separating this error is tricky. I'm not sure it can be done without losing the functionality of some of these windows.

I'm going to keep looking into this, but I'm not confident it can be done. On many forums, when people ask about this sort of question, the answers aren't very encouraging and are sometimes contradictory.

For instance, let's say you're on the roster screen. There is one main list, which contains players. There are also buttons, which control which set of information you can view about the players.

The "C" accelerator is tied to the button that changes the information you're viewing to contract information. However, when you're in the player list, the "C" accelerator is tied to jumping to the next player whose last name begins with C.

So, when you hit "C", what do you expect to happen? Since there's no keyboard shortcut for getting out of the list (and no indication, really, that you're in it in the first place), the answer is probably that there should be no keyboard shortcuts for buttons on screens that also contain lists.

Yet pretty much every screen has lists, and the shortcuts can be very convenient.

And within the lists themselves, the accelerators are not customizable as far as I can tell. If you hit "C" and there's no player whose last name begins with C, the control beeps. I've dug into the return codes from these keystrokes, and there's no way to tell the user that the key didn't result in a match, but don't beep to say no.
Solecismic is offline   Reply With Quote