closing modeless CPropertySheet
William W. Whiting -- billw@usa.net Friday, May 10, 1996 Env: VC4.1/Win95 & WinNT 3.51 How do I gracefully handle an OK button event from a modeless property = sheet when that sheet is using it's own doc/view and is created in a = CMiniFrameWnd rather than a CMDIChildWnd? I seem to be either missing = the notification or leaking memory. When OK is pressed I need to do my = "apply" actions for each property page which is modified. I have created = several CTypedPtrArray objects which need to be cleaned up. I am = currently doing this in the document's DeleteContents virtual function. = Currently I can only get what I want done my pressing the apply button = and then closing the miniframe using its system menu or close button. Thanks. Bill Whiting
David W. Gillett -- DGILLETT@expertedge.com Monday, May 13, 1996 > Env: VC4.1/Win95 & WinNT 3.51 > > How do I gracefully handle an OK button event from a modeless > property sheet when that sheet is using it's own doc/view and is > created in a CMiniFrameWnd rather than a CMDIChildWnd? I seem to be > either missing the notification or leaking memory. When OK is > pressed I need to do my "apply" actions for each property page > which is modified. I have created several CTypedPtrArray objects > which need to be cleaned up. I am currently doing this in the > document's DeleteContents virtual function. Currently I can only > get what I want done my pressing the apply button and then closing > the miniframe using its system menu or close button. By default, a modeless property sheet has its buttons hidden and outside its frame. It's tempting to "simply" extend the frame and unhide the buttons, but in this case you want the OK click to trigger both actions in the sheet *and* the frame. You could invoke the frame's "close" command by posting it a WM_SYSCOMMAND message from your OK and Cancel handlers (in your own class derived from CPropertySheet). Or you could create your own OK/Cancel buttons as siblings of the sheet, and call CPropertySheet::PressButton() from their handlers to notify the sheet and its pages. Dave
| Вернуться в корень Архива |