I can think of three ways to get the result you wish to implement.
they would look different at the surface, although the underlying
MFC procedures are actually the same.
even in SDI apps its possible to open further windows, and there
is a special sort of dialog, that doesnt have to be closed before the
main program can carry on - a modal dialog.
you can design such a dialog with the ressource editor, including all
the buttons you wish to have, e.g. "pan", "rotate" etc.
for each of those buttons you will have to set up an ID as well.
then, use the class wizard to get a new class for your dialog and
connect the buttons with the messaging system calling them via
their IDs. set up some bools too, to keep track of the current
button thats pressed.
as far as I can remember, the modality of a dialog isnt decided by
its baseclass, but the calling procedure.
now, you'll need a switch-statement in your message handlers for
your mouse - according to the button thats pressed - aka the "mouse
mode" thats chosen - you have to do different things.
2. menu entries
another way to do it, is to include some new menu entries in your menu
one for each "mouse mode" you wish to implement.
under the hood, its the same - IDs to name them and message handlers
to connect them to the message loop. menu entries can be "checked" -
use this feature to keep track of the current mode...
3. floating toolbars
yet another way to achieve what you want to do, is to fumble around with
floating toolbars. they are a mixture of the two possibilities of user
described above - toolbars are those buttons with images beneath the menu
you can set up toolbars with the ressource editor. then, you will have to
flags to make them able to "float" - to allow the toolbar to move around
being attached to the borders of you SDI mainframe window.