Use the endprint event...that is something like, in the designer code put:
///////////////
something.EndPrint += new PrintEventHandler(endingclass);
//////////////
in the form constructor, or anywhere in the program/form where you can call the method put:
private void endingclass(object sender, PrintEventArgs e)
{
MessageBox.Show("wazaaaaaaaaaaaaaaaaa");
}
////////
Obviously, you need to make some...arrangements in the code above - but I believe they are self evident. In case you have problems, googl the endprint event, it will 100% has some examples associated with it.
////
On a side note...if you're really bored you can think of asynchronous process which checks the process every....1/10 of a second :). It will work, but it's a bizarre way to accomplish such a thing. Since you're a c++ developer, c# should be easy to you, you'll like it, it's more powerfull than c++ anyway.