I did a search but must have been asking the wrong questions because I can't find the article I vaguely remember on this. The forum search wasn't specific enough in this case and of course NONE of the titles seemed relevant. I think it was this forum but it might not have been here.
The only way I recall seeing this done with customized message box buttons (i.e. Yes, No, OK, Cancel, Retry, Ignore) was that someone built a pop-up form and turned off all sorts of form closure features (so that you could not just dismiss it without making a choice). He made it a modal form that was "always on top" of the screen and built a series of command buttons with the various responses as desired. All of the responses ended up closing the form in an orderly fashion.
The problem of course is that the form had to return any particular value to its caller in a non-standard way i.e. not as a simple intrinsic function does - because it was not an intrinsic function.
The message box function really does this anyway, but as a black box that you cannot see into in order to change anything. But in the context of this special form, you could do darn near anything you wanted to do from behind the buttons.
It is NOT a trivial exercise, not for the faint of heart, and not something you would "whip up" in a couple of hours, mostly because of the complexity of the implied linkages back to the caller.