There is no rule about calling base class functionality. If you need it to do its work before your work, you call it first. If you need it to do it after, you call it after. If you don't care either way, then do it one or the other, but always be consistent. OnOK() calls UpdateData() during its processing, which you can do at any time you need to (though some say that having to call UpdateData() is a sign of a poorly designed program. I don't always agree, Dialog based apps often need to call it).