Ejemplo n.º 1
0
LONG CLayoutRuleRelativeControl::Apply(CWindow wndLayout, UINT nDirection,
										const CRect& rcLayout) const
{
	CWindow wndCtrl = wndLayout.GetDlgItem( m_nCtrlID );
	ATLASSERT( ::IsWindow(wndCtrl) );

	CRect rcPadding( 0, 0, m_nPadding, m_nPadding );
	::MapDialogRect( wndLayout, rcPadding );

	HDWP hDwp = (HDWP) GetProp( wndLayout, MAKEINTATOM(g_atomPropHDWP) );
	CRect rcCtrl;
	GetNewWindowRect( wndCtrl, hDwp, rcCtrl );

	switch ( this->m_nDirection )
	{
		case LAYOUT_DIRECTION_LEFT:
			ATLASSERT( nDirection == LAYOUT_DIRECTION_LEFT || nDirection == LAYOUT_DIRECTION_RIGHT );
			return rcCtrl.left - rcPadding.Width();
		case LAYOUT_DIRECTION_TOP:
			ATLASSERT( nDirection == LAYOUT_DIRECTION_TOP || nDirection == LAYOUT_DIRECTION_BOTTOM );
			return rcCtrl.top - rcPadding.Height();
		case LAYOUT_DIRECTION_RIGHT:
			ATLASSERT( nDirection == LAYOUT_DIRECTION_LEFT || nDirection == LAYOUT_DIRECTION_RIGHT );
			return rcCtrl.right + rcPadding.Width();
		case LAYOUT_DIRECTION_BOTTOM:
			ATLASSERT( nDirection == LAYOUT_DIRECTION_TOP || nDirection == LAYOUT_DIRECTION_BOTTOM );
			return rcCtrl.bottom + rcPadding.Height();
		default:
			ATLASSERT(FALSE);
			return 0;
	}
}
Ejemplo n.º 2
0
HWND CLayoutControl::CalcRect( CWindow wndLayout, LPCRECT prcLayout, LPRECT prc )
{
	ATLASSERT( wndLayout.IsWindow() );
	ATLASSERT( prcLayout != NULL );
	ATLASSERT( prc != NULL );

	// Retrieve the control's window handle
	CWindow wndControl = wndLayout.GetDlgItem( m_nID );
	ATLASSERT( wndControl.IsWindow() );

	// Get the control's current bounds
	CRect rcOld;
	wndControl.GetWindowRect(rcOld);
	wndLayout.ScreenToClient(rcOld);

	CopyRect( prc, rcOld );

	if ( m_nAnchor & LAYOUT_ANCHOR_LEFT )
	{
		prc->left = prcLayout->left + m_rcMargins.left;
		if ( !(m_nAnchor & LAYOUT_ANCHOR_RIGHT) )
			prc->right = prc->left + rcOld.Width();
	}
	if ( m_nAnchor & LAYOUT_ANCHOR_TOP )
	{
		prc->top = prcLayout->top + m_rcMargins.top;
		if ( !(m_nAnchor & LAYOUT_ANCHOR_BOTTOM) )
			prc->bottom = prc->top + rcOld.Height();
	}
	if ( m_nAnchor & LAYOUT_ANCHOR_RIGHT )
	{
		prc->right = prcLayout->right - m_rcMargins.right;
		if ( !(m_nAnchor & LAYOUT_ANCHOR_LEFT) )
			prc->left = prc->right - rcOld.Width();
	}
	if ( m_nAnchor & LAYOUT_ANCHOR_BOTTOM )
	{
		prc->bottom = prcLayout->bottom - m_rcMargins.bottom;
		if ( !(m_nAnchor & LAYOUT_ANCHOR_TOP) )
			prc->top = prc->bottom - rcOld.Height();
	}

	return (HWND) wndControl;
}
Ejemplo n.º 3
0
void CRegisterTabs::InitRegisterEdit64(CWindow& tab, CEditReg64& edit, WORD ctrlId)
{
    edit.Attach(tab.GetDlgItem(ctrlId));
}
Ejemplo n.º 4
0
void CRegisterTabs::InitRegisterEdit(CWindow& tab, CEditNumber32& edit, WORD ctrlId)
{
    edit.Attach(tab.GetDlgItem(ctrlId));
    edit.SetDisplayType(CEditNumber32::DisplayHex);
}