CancelToClose
mlw -- mlw@i2.co.uk Monday, July 22, 1996 Environment: VC++ 4.1 / Win95 I have a problem with my derived Property Sheet and Pages classes: = CancelToClose () has no effect. I am not using a modeless property = sheet. Nothing seems to happen to either the Cancel or OK buttons when I = press the Apply button. I have occasionally seen (very fleetingly) the = OK button change to Close when I hit the OK button to close the Property = Sheet Any help with this problem would be much appreciated. Mark Williams=20 mlw@i2.co.uk
Brian_Dormer@ftdetrck-ccmail.army.mil Thursday, July 25, 1996 Post your source - it's probably that you are calling CancelToClose() at the wrong time. bd ______________________________ Reply Separator _________________________________ Subject: CancelToClose Author: mfc-l@netcom.com at Internet-Mail Date: 7/25/96 3:24 AM Environment: VC++ 4.1 / Win95 I have a problem with my derived Property Sheet and Pages classes: = CancelToClose () has no effect. I am not using a modeless property = sheet. Nothing seems to happen to either the Cancel or OK buttons when I = press the Apply button. I have occasionally seen (very fleetingly) the = OK button change to Close when I hit the OK button to close the Property = Sheet Any help with this problem would be much appreciated. Mark Williams=20 mlw@i2.co.uk
bop@gandalf.se Monday, July 29, 1996 Environment: VC++ 4.1 / Win95 > I have a problem with my derived Property Sheet and Pages classes: = > CancelToClose () has no effect. I am not using a modeless property = > sheet. Nothing seems to happen to either the Cancel or OK buttons when I = > press the Apply button. I have occasionally seen (very fleetingly) the = > OK button change to Close when I hit the OK button to close the Property = > Sheet > > Any help with this problem would be much appreciated. > > Mark Williams > mlw@i2.co.uk I have been struggling with this myself for the last couple of days. More interesting, I had one property sheet where it worked and one where it did not! Eventually I realized that the working version called CancelToClose() from a handler of a "Save" button on the property PAGE, while calling CancelToClose from OnApply does not work. Looking into the MFC source, you can see that the CancelToClose essentially just does a: GetParent()->SendMessage(PSM_CANCELTOCLOSE); Which means: Tell the property sheet (the parent of the page) to change its state. A problem here is that the property sheet is probably already handling a PSM_APPLY message (that's why it is calling OnApply!) and cannot handle another message just then! So I changed SendMessage into PostMessage, or rather replaced CancelToClose(); with GetParent()->PostMessage(PSM_CANCELTOCLOSE); And it worked! :-)) Bo Persson bop@gandalf.se P.S. Does anyone know why it's called CancelToClose() when it actually changes the OK button to Close?? :-)
| Вернуться в корень Архива |