Ce n'est pas la peine de faire un
switch pour seulement 2 cas, un simple
if est plus adapté dans ce cas (plus court, plus lisible et non redondant parce que tu n'as qu'un seul test à faire, le 2
ème cas est le
else), le code sera aussi plus rapide et compact.
Il faut au minimum 3 cas pour que le
switch ait un intérêt.
Enfin, dans ce cas il y a en fait 3 cas, mais le 3
ème est caché (

). Cela dit, j'écrirais ton code comme ça:
if (Key == KEY_MODE) {
MenuResult = DrawMenu(&ModeMenu,DScreen);
if (MenuResult) {
MenuResult2 = DrawMenu(--MenuResult ? &ModeMenuDP : &ModeMenuLP,DScreen);
if (MenuResult2)
MainData.ToolsMode[MenuResult][MainData.Tool] = MenuResult2 - 1;
}
}