Now, I’m found of saying that a tool-tip kind of thing solves nothing, but this may just be an exception.
It’s confusing to a user when they can’t find a menu item, so hiding it isn’t a good idea. Plus, you want the user to see that a function can become available. Disabling it to show that it isn’t available at the moment is much less annoying to the user than only telling them that it can’t be done after they’ve chosen it. A tool-tip that tells the user why the command isn’t currently available eliminates the frustration of the user not knowing why it is disabled.