int d_check_proc(int msg, DIALOG *d, int c);
This is an example of how you can derive objects from other objects. Most of the functionality comes from d_button_proc(), but it displays itself as a check box. If the d1 field is non-zero, the text will be printed to the right of the check, otherwise it will be on the left.
Note: the object width should allow space for the text as well as the check box (which is square, with sides equal to the object height).