From: Paresh on
Hi,

I have a class derived from CPropertySheet. I have added a CToolbar to this
property sheet. I have repositioned the toolbar at right top corner of the
property sheet.
However, the property sheet area covers the toolbar and I am able to see
only some portion of the toolbar area.

How could I bring the Toolbar on top of property sheet ? (May be at the tabs
level but at right side)

I have tried putting a CButton control on the property sheet and is working
properly.

Please refer below code to understand the situation.

class CMyPropertySheet : public CPropertySheet
{
DECLARE_DYNAMIC(CMyPropertySheet)

public:
CMyPropertySheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage
= 0);
CMyPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT
iSelectPage = 0);
virtual ~CMyPropertySheet();

protected:
DECLARE_MESSAGE_MAP()

private:
CButton m_Button;
CToolBar m_wndToolBar;

public:
virtual BOOL OnInitDialog();
afx_msg void OnButtonClicked();
afx_msg void OnButton1Clicked();
afx_msg void OnButton2Clicked();
void RepositionToolbars();
};

BOOL CMyPropertySheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();

// TODO: Add your specialized code here

m_Button.Create(_T("New Button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(200,0,300,20), this, ID_BUTTON_ID);

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT,
WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}

RepositionToolbars();


return bResult;
}

void CMyPropertySheet::RepositionToolbars()
{
// Reposition validation toolbar.
if(m_wndToolBar)
{
m_wndToolBar.GetToolBarCtrl().ModifyStyleEx(SWP_NOMOVE | SWP_NOREPOSITION,
SWP_SHOWWINDOW);

// Calculate toolbar width.
CSize SizeToolBar;
m_wndToolBar.GetToolBarCtrl().GetMaxSize(&SizeToolBar);

CRect rcDlg;
GetClientRect(&rcDlg);

int iWidth = 0;
int iHeight = 0;

iWidth = SizeToolBar.cx;
iHeight = SizeToolBar.cy;

int iX = rcDlg.right-iWidth;
int iY = 0;

m_wndToolBar.GetToolBarCtrl().MoveWindow(iX, iY, iWidth, iHeight);
}
}

Any help would be highly appreciable.

Regards,
Paresh.