Ryan
Ryan

Reputation: 467

Dynamically resizing CMFCPropertySheet with PropSheetLook_OneNoteTabs style

I'm trying to resize dynamically a CMFCPropertySheet to add a custom control at the bottom of each page.

As all Property Pages are not of the same height, I have a mechanism to increase the size if necessary. For this, I have overridden the OnActivatePage method and by using SetWindowPos, I can resize the sheet, first, then the tab control, then the page and finally I can move the OK/Cancel/Help buttons.

It works fine with PropSheetLook_OutlookBar and PropSheetLook_Tabs styles but not with PropSheetLook_OneNoteTabs style. The page (or the tab) is not correctly resized (the lighter grey color of the page does not fill the sheet.

OneNote style OneNote http://www.freeimagehosting.net/uploads/th.ec91600664.jpg

Outlook style Outlook http://www.freeimagehosting.net/uploads/th.319b6938ab.jpg

Any idea? A MFC Feature Pack bug?

Upvotes: 1

Views: 2148

Answers (2)

namespace sid
namespace sid

Reputation: 1936

Just follow the instructions as seen in here. Although the instructions are for CPropertySheet they work for the CMFCPropertySheet as well.

Some parts of the code is deprecated so you will need to make the following amendments.

  1. Skip the XmnPropSheetCallback and DoModal implementations completely
  2. In OnInitDialog just make a call to CPropertySheet::OnInitDialog(); and then call OnSize instead of doing everything presented in that code.

Upvotes: 0

Greg Prosch
Greg Prosch

Reputation: 1038

I found the problem. One needs to get a reference to the different tab control the OneNote version uses via GetTab() and resize it accordingly.

Upvotes: 0

Related Questions