Пример #1
0
void CXTPColorDialog::SetNewColor(COLORREF clr, BOOL bNotify/*= TRUE*/)
{
	m_clrNew = clr;

	if (IsWindowVisible())
	{
		CClientDC dc(this);
		dc.FillSolidRect(&m_rcNew, m_clrNew);

		if (m_dwStyle & CPS_XTP_SHOWHEXVALUE)
		{
			m_wndHexEdit.SetWindowText(RGBtoHex(m_clrNew));
		}
	}

	if (bNotify && GetTabControl() && GetTabControl()->GetSafeHwnd())
	{
		int iPage;
		for (iPage = 0; iPage < GetPageCount(); ++iPage)
		{
			CWnd* pWnd = GetPage(iPage);

			if (::IsWindow(pWnd->GetSafeHwnd()))
			{
				pWnd->SendMessage(WM_XTP_UPDATECOLOR,
					(WPARAM)m_clrNew, (LPARAM)m_hWnd);
			}
		}
	}
}
Пример #2
0
void CResizableSheet::PresetLayout()
{
	CWnd* pWnd;	// points to various children
	CRect wndrc, objrc;
	GetClientRect(&wndrc);

	// tab control or wizard line position
	if (m_psh.dwFlags & PSH_WIZARD)	// wizard mode
	{
		// get wizard line's bottom-right corner
		pWnd = GetDlgItem(ID_WIZLINE);

		// hide tab control
		GetTabControl()->ShowWindow(SW_HIDE);
	}
	else	// tabbed mode
	{
		// get tab control's bottom-right corner
		pWnd = GetTabControl();
	}
	// whatever it is, take the right margin
	pWnd->GetWindowRect(&objrc);
	ScreenToClient(&objrc);

	m_szLayoutTabLine.cx = objrc.right - wndrc.right;
	m_szLayoutTabLine.cy = objrc.bottom - wndrc.bottom;

	// get child dialog's bottom-right corner
	pWnd = GetActivePage();

	pWnd->GetWindowRect(&objrc);
	ScreenToClient(&objrc);

	m_szLayoutPage.cx = objrc.right - wndrc.right;
	m_szLayoutPage.cy = objrc.bottom - wndrc.bottom;

	// store buttons position
	for (int i = 0; i < 7; i++)
	{
		pWnd = GetDlgItem(_propButtons[i]);
		
		if (pWnd == NULL)
		{
			// invalid position, button does not exist
			// (just to initialize, any button you may activate
			// in the future is present, but hidden)
			m_szLayoutButton[i].cx = 0;
			m_szLayoutButton[i].cy = 0;
			continue;
		}
		
		pWnd->GetWindowRect(&objrc);
		ScreenToClient(&objrc);

		m_szLayoutButton[i].cx = objrc.left - wndrc.right;
		m_szLayoutButton[i].cy = objrc.top - wndrc.bottom;
	}
}
Пример #3
0
void CEOSSPropertySheet::SetTabColor(int Tab,COLORREF Color)
{
	if (Tab != IDC_EOSSDATA_TAB) return;
	int ColorIndex;
	int tab = 0;
	switch(Color) {
	case COLOR_RED:
		ColorIndex = 0;
		break;
	case COLOR_GREEN:
		ColorIndex = 1;
		break;
	case COLOR_BLUE:
		ColorIndex = 2;
		break;
	case COLOR_YELLOW:
		ColorIndex = 3;
		break;
	case COLOR_CYAN:
		ColorIndex = 4;
		break;
	case COLOR_MAGENTA:
		ColorIndex = 5;
		break;
	case COLOR_WHITE:
		ColorIndex = 6;
		break;
	case COLOR_BLACK:
		ColorIndex = 7;
		break;
	case COLOR_GREENRED:
		ColorIndex = 8;
		break;
	case COLOR_BLUERED:
		ColorIndex = 9;
		break;
	case COLOR_REDYELLOW: // jfl, note map of status 3 to image 10
		ColorIndex = 10;
		break;
	default:
		ColorIndex = 6;
	};
	TC_ITEM pTabCtrlItem;
	pTabCtrlItem.mask = TCIF_IMAGE;
	pTabCtrlItem.iImage = ColorIndex;
	switch (Tab) {
	case IDC_EOSSDATA_TAB:			tab = 1; break;
//	case IDC_BINARYEOSSDATA_TAB:   tab = 2; break;
//	case IDC_UGRANDEOSSDATA_TAB:	tab = 3; break;
//	case IDC_GPSDATA_TAB:			tab = 3; break;
//	case IDC_VACOSSDATA_TAB:		tab = 4; break;
	};
	GetTabControl()->SetItem(tab,&pTabCtrlItem);
	GetTabControl()->Invalidate();
}
Пример #4
0
void CResizableSheet::PresetLayout()
{
	// set the initial size as the min track size
	CRect rc;
	GetWindowRect(&rc);
	SetMinTrackSize(rc.Size());

	if (GetStyle() & WS_CHILD)
	{
		GetClientRect(&rc);
		GetTabControl()->MoveWindow(&rc);
	}

	if (IsWizard())	// wizard mode
	{
		// hide tab control
		GetTabControl()->ShowWindow(SW_HIDE);

		AddAnchor(ID_WIZLINE, BOTTOM_LEFT, BOTTOM_RIGHT);
	}
	else	// tab mode
	{
		AddAnchor(AFX_IDC_TAB_CONTROL, TOP_LEFT, BOTTOM_RIGHT);
	}

	// add a callback for active page (which can change at run-time)
	m_nCallbackID = AddAnchorCallback();

	// use *total* parent size to have correct margins
	CRect rectPage, rectSheet;
	GetTotalClientRect(&rectSheet);

	GetActivePage()->GetWindowRect(&rectPage);
	::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rectPage, 2);

	// pre-calculate margins
	m_sizePageTL = rectPage.TopLeft() - rectSheet.TopLeft();
	m_sizePageBR = rectPage.BottomRight() - rectSheet.BottomRight();

	// add all possible buttons, if they exist
	for (int i = 0; i < _propButtonsCount; i++)
	{
		if (NULL != GetDlgItem(_propButtons[i]))
			AddAnchor(_propButtons[i], BOTTOM_RIGHT);
	}

	// prevent flickering
	GetTabControl()->ModifyStyle(0, WS_CLIPSIBLINGS);
}
Пример #5
0
//***************************************************************************************
void CBCGPropertySheet::AddPageToTree (CBCGPropSheetCategory* pCategory, 
									   CBCGPropertyPage* pPage, int nIconNum,
									   int nSelIconNum)
{
	ASSERT_VALID (this);
	ASSERT_VALID (pPage);
	ASSERT (m_look == PropSheetLook_Tree);

	if (pCategory != NULL)
	{
		ASSERT_VALID (pCategory);
		pCategory->m_lstPages.AddTail (pPage);
	}

	pPage->m_pCategory = pCategory;
	pPage->m_nIcon = nIconNum;
	pPage->m_nSelIconNum = nSelIconNum;

	CPropertySheet::AddPage (pPage);

	if (GetSafeHwnd () != NULL)
	{
		CTabCtrl* pTab = GetTabControl ();
		ASSERT_VALID (pTab);

		InternalAddPage (pTab->GetItemCount () - 1);
	}
}
Пример #6
0
BOOL OptionsDialog::OnInitDialog() 
{
  CPropertySheet::OnInitDialog();

  // Enable context sensitive help
  ModifyStyleEx(0,WS_EX_CONTEXTHELP);

  // Create the font to use
  m_font.CreateFontIndirect(&m_logFont);

  // Set the font for the property pages
  ChangeDialogFont(this,&m_font);
  CPropertyPage* page = GetActivePage();
  for (int i = 0; i < GetPageCount(); i++)
  {
    SetActivePage(i);
    CPropertyPage* page = GetActivePage();
    ChangeDialogFont(page,&m_font);
  }
  SetActivePage(page);

  // Resize the property page
  CTabCtrl* tab = GetTabControl();
  tab->GetWindowRect(&m_page);
  ScreenToClient(&m_page);
  tab->AdjustRect(FALSE,&m_page);
  page->MoveWindow(&m_page);

  return TRUE;
}
Пример #7
0
BOOL CPropSheet::OnInitDialog() 
{
	BOOL bResult = CPropertySheet::OnInitDialog();
	
	// TODO: Add your specialized code here
	CRect rect, tabrect;// = CRect (800, 440, 950, 645);//, tabrect;
	int width;

	//Get button sizes and positions
	GetDlgItem(IDCANCEL)->GetWindowRect(rect);
	GetTabControl()->GetWindowRect(tabrect);
	ScreenToClient(rect); ScreenToClient(tabrect);
	
	//New button - width, height and Y-coordiate of IDOK
	//           - X-coordinate of tab control
	width = rect.Width();
	rect.left = tabrect.left; rect.right = tabrect.left + width;
	CString FeedbackChoice = GetGlobal("FeedbackChoice");
	CString FeedbackButtonName = GetGlobal("FeedbackButtonName");
	if (FeedbackChoice.Compare("Yes") == 0)
	{
	//Create new "Add" button and set standard font
	m_ButtonCopy.Create(FeedbackButtonName,
			BS_PUSHBUTTON|WS_CHILD|WS_VISIBLE|WS_TABSTOP,
			rect, this, IDC_FEEDBACK_BUTTON);
	m_ButtonCopy.SetFont(GetFont());
	}
	else
	;
	SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME), FALSE);
	SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME), TRUE);
	return bResult;
}
Пример #8
0
void CResizableSheet::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
{
	MinMaxInfo(lpMMI);

	CTabCtrl* pTab = GetTabControl();
	if (!pTab)
		return;

	int nCount = GetPageCount();
	for (int idx = 0; idx < nCount; ++idx)
	{
		if (IsWizard())	// wizard mode
		{
			// use pre-calculated margins
			CRect rectExtra(-CPoint(m_sizePageTL), -CPoint(m_sizePageBR));
			// add non-client size
			::AdjustWindowRectEx(&rectExtra, GetStyle(), !(GetStyle() & WS_CHILD) &&
				::IsMenu(GetMenu()->GetSafeHmenu()), GetExStyle());
			ChainMinMaxInfo(lpMMI, *GetPage(idx), rectExtra.Size());
		}
		else	// tab mode
		{
			ChainMinMaxInfoCB(lpMMI, *GetPage(idx));
		}
	}
}
Пример #9
0
void CTreePropSheet::UpdateCaption()
{
	HWND			hPage = PropSheet_GetCurrentPageHwnd(GetSafeHwnd());
	BOOL			bRealPage = IsWindow(hPage) && ::IsWindowVisible(hPage);
	HTREEITEM	hItem = m_pwndPageTree->GetSelectedItem();
	if (!hItem)
		return;
	CString		strCaption = m_pwndPageTree->GetItemText(hItem);

	// if empty page, then update empty page message
	if (!bRealPage)
		m_pFrame->SetMsgText(GenerateEmptyPageMessage(m_strEmptyPageMessage, strCaption));

	// if no captions are displayed, cancel here
	if (!m_pFrame->GetShowCaption())
		return;

	// get tab control, to the the images from
	CTabCtrl	*pTabCtrl = GetTabControl();
	if (!IsWindow(pTabCtrl->GetSafeHwnd()))
	{
		ASSERT(FALSE);
		return;
	}

	if (m_bTreeImages)
	{
		// get image from tree
		int	nImage;
		m_pwndPageTree->GetItemImage(hItem, nImage, nImage);
		HICON	hIcon = m_Images.ExtractIcon(nImage);
		m_pFrame->SetCaption(strCaption, hIcon);
		if (hIcon)
			DestroyIcon(hIcon);
	}
	else if (bRealPage)
	{
		// get image from hidden (original) tab provided by the original
		// implementation
		CImageList	*pImages = pTabCtrl->GetImageList();
		if (pImages)
		{
			TCITEM	ti;
			ZeroMemory(&ti, sizeof(ti));
			ti.mask = TCIF_IMAGE;

			HICON	hIcon = NULL;
			if (pTabCtrl->GetItem((int)m_pwndPageTree->GetItemData(hItem), &ti))
				hIcon = pImages->ExtractIcon(ti.iImage);

			m_pFrame->SetCaption(strCaption, hIcon);
			if (hIcon)
				DestroyIcon(hIcon);
		}
		else
			m_pFrame->SetCaption(strCaption);
	}
	else
		m_pFrame->SetCaption(strCaption);
}
Пример #10
0
void CitPropertySheet::listinit()
{
	LVITEM lvi;
	::ZeroMemory(&lvi,sizeof(lvi));

	CHeaderCtrl* pHeader=m_wndList.GetHeaderCtrl();
	pHeader->ShowWindow(SW_HIDE);

	CRect rectList;
	m_wndList.GetWindowRect(&rectList);
	ScreenToClient(&rectList);
	//添加列表头,前面已经隐藏
	m_wndList.InsertColumn(0,_T("设置"),LVCFMT_CENTER,rectList.Width(),0);
	CString str;
	CTabCtrl* pTab=GetTabControl();
	TCITEM tci;
	::ZeroMemory(&tci,sizeof(tci));
	tci.mask=TCIF_TEXT;
	tci.cchTextMax=256;
	TCHAR szBuf[256]={0};
	tci.pszText=szBuf;
	for(int idxPge=0;idxPge<GetPageCount();idxPge++)
	{
		if(pTab->GetItem(idxPge,&tci))
		{
			lvi.iItem=idxPge;
			lvi.iSubItem=0;
			//lvi.iImage=idxPge;
			lvi.mask=LVIF_TEXT; //LVIF_IMAGE;
			lvi.pszText=tci.pszText;
			m_wndList.InsertItem(&lvi);
		}
	}
}
Пример #11
0
void CResizableSheet::PresetLayout()
{
	if (IsWizard())	// wizard mode
	{
		// hide tab control
		GetTabControl()->ShowWindow(SW_HIDE);

		AddAnchor(ID_WIZLINE, BOTTOM_LEFT, BOTTOM_RIGHT);
	}
	else	// tab mode
	{
		AddAnchor(AFX_IDC_TAB_CONTROL, TOP_LEFT, BOTTOM_RIGHT);
	}

	// add a callback for active page (which can change at run-time)
	AddAnchorCallback(1);

	// use *total* parent size to have correct margins
	CRect rectPage, rectSheet;
	GetTotalClientRect(&rectSheet);

	GetActivePage()->GetWindowRect(&rectPage);
	ScreenToClient(&rectPage);

	// pre-calculate margins
	m_sizePageTL = rectPage.TopLeft() - rectSheet.TopLeft();
	m_sizePageBR = rectPage.BottomRight() - rectSheet.BottomRight();

	// add all possible buttons, if they exist
	for (int i = 0; i < 7; i++)
	{
		if (NULL != GetDlgItem(_propButtons[i]))
			AddAnchor(_propButtons[i], BOTTOM_RIGHT);
	}
}
Пример #12
0
void CResizableSheet::SaveWindowRect()
{
	CString data;
	WINDOWPLACEMENT wp;

	ZeroMemory(&wp, sizeof(WINDOWPLACEMENT));
	wp.length = sizeof(WINDOWPLACEMENT);
	GetWindowPlacement(&wp);
	
	RECT& rc = wp.rcNormalPosition;	// alias

	// also saves active page index, zero (the first) if problems
	// cannot use GetActivePage, because it always fails
	CTabCtrl *pTab = GetTabControl();
	int page = 0;

	if (pTab != NULL) 
		page = pTab->GetCurSel();
	if (page < 0)
		page = 0;

	// always save page
	data.Format(PROFILE_FMT, rc.left, rc.top,
		rc.right, rc.bottom, wp.showCmd, wp.flags, page);

	AfxGetApp()->WriteProfileString(m_sSection, m_sEntry, data);
}
Пример #13
0
BOOL CCustomPropSheet::OnInitDialog(void)
{
	__super::OnInitDialog();

	// get the font for the first active page
	CPropertyPage* pCurPage = GetActivePage();
	ASSERT(pCurPage != NULL);

	// change the font for the sheet
	ChangeDialogFont(this, &m_fontPage, CDF_CENTER);

	// change the font for each page
	for (int i = 0, cPages = GetPageCount(); i < cPages; ++i)
	{
		CPropertyPage* pPage = GetPage(i);
		ASSERT(pPage != NULL);
#if !defined(_BUGFIX_)
		ChangeDialogFont(pPage, &m_fontPage, CDF_CENTER);
#else
		ChangeDialogFont(pPage, &m_fontPage, CDF_TOPLEFT);
#endif   // _BUGFIX_
	}

	// set and save the size of the page
	CTabCtrl* pTab = GetTabControl();
	ASSERT(pTab != NULL);

	if ((m_psh.dwFlags & PSH_WIZARD) != 0)
	{
		pTab->ShowWindow(SW_HIDE);
#if !defined(_BUGFIX_)
		GetClientRect(&m_rcPage);
		CWnd* pButton = GetDlgItem(ID_WIZBACK);
		ASSERT(pButton != NULL);
		CRect rectButton;
		pButton->GetWindowRect(rectButton);
		ScreenToClient(rectButton);
		m_rcPage.bottom = rectButton.top - 2;
#else
		CRect rectDivider;
		CWnd* pDivider = GetDlgItem(0x3026);
		ASSERT(pDivider != NULL);
		pDivider->GetWindowRect(rectDivider);
		ScreenToClient(rectDivider);
		m_rcPage.bottom = rectDivider.top - 2;
#endif   // _BUGFIX_
	}
	else
	{
		pTab->GetWindowRect(&m_rcPage);
		ScreenToClient(&m_rcPage);
		pTab->AdjustRect(FALSE, &m_rcPage);
	}

	// resize the page
	pCurPage->MoveWindow(&m_rcPage);

	return (TRUE);
}
Пример #14
0
BOOL CTreePropSheet::SelectCurrentPageTreeItem()
{
	CTabCtrl	*pTab = GetTabControl();
	if (!IsWindow(pTab->GetSafeHwnd()))
		return FALSE;

	return SelectPageTreeItem(pTab->GetCurSel());
}
Пример #15
0
//****************************************************************************************
void CBCGPropertySheet::InternalAddPage (int nTab)
{
	CTabCtrl* pTab = GetTabControl ();
	ASSERT_VALID (pTab);

	TCHAR szTab [256];

	TCITEM item;
	item.mask = TCIF_TEXT;
	item.cchTextMax = 255;
	item.pszText = szTab;

	pTab->GetItem (nTab, &item);

	if (m_wndOutlookBar.GetSafeHwnd () != NULL)
	{
		HICON hIcon = m_Icons.ExtractIcon (nTab);
		m_wndOutlookBar.AddButton (hIcon, szTab, 0, (UINT) -1, (UINT) -1, m_bAlphaBlendIcons);
		::DestroyIcon (hIcon);
	}

	if (m_wndTree.GetSafeHwnd () != NULL)
	{
		CBCGPropertyPage* pPage = DYNAMIC_DOWNCAST (CBCGPropertyPage, GetPage (nTab));
		if (pPage == NULL)
		{
			ASSERT (FALSE);
			return;
		}

		HTREEITEM hParent = NULL;
		if (pPage->m_pCategory != NULL)
		{
			ASSERT_VALID (pPage->m_pCategory);
			hParent = pPage->m_pCategory->m_hTreeItem;
		}

		HTREEITEM hTreeItem = m_wndTree.InsertItem (szTab, 
			I_IMAGECALLBACK, I_IMAGECALLBACK, hParent);
		m_wndTree.SetItemData (hTreeItem, (DWORD_PTR) pPage);
		pPage->m_hTreeNode = hTreeItem;
	}

	if (m_wndTab.GetSafeHwnd () != NULL)
	{
		CBCGPropertyPage* pPage = DYNAMIC_DOWNCAST (CBCGPropertyPage, GetPage (nTab));
		if (pPage == NULL)
		{
			ASSERT (FALSE);
			return;
		}

		UINT uiImage = m_Icons.GetSafeHandle () == NULL ? (UINT)-1 : nTab;

		m_wndTab.AddTab (pPage, szTab, uiImage);
	}
}
Пример #16
0
BOOL CMsgAllSheet::OnInitDialog() 
{
	BOOL bResult = CPropertySheet::OnInitDialog();
	
	// TODO: Add your specialized code here
	//设置
	TC_ITEM item;
	item.mask = TCIF_TEXT;
	item.pszText = "ESM侦查信息";	
	GetTabControl()->SetItem(0, &item);
	item.mask = TCIF_TEXT;
	item.pszText = "通讯信息";
	GetTabControl()->SetItem(1, &item);
	item.mask = TCIF_TEXT;
	item.pszText = "航迹信息";
	GetTabControl()->SetItem(2, &item);

	return bResult;
}
Пример #17
0
CSynBCGPEditView * CCoolFormat3View::GetSynView()
{
	//获取TAB数 返回动态绑定
	CSynBCGPEditView *pView = NULL;
	if (GetTabControl().GetTabsNum() > 0)
	{
		pView = DYNAMIC_DOWNCAST(CSynBCGPEditView, m_wndTabs.GetTabWnd(0));
	}
	return pView;
}
Пример #18
0
void CAdminView::LoadAllUserInfo(void)
{
	CBCGPTabWnd&  TabWnd = GetTabControl();	
	CUsersView* pUserView = (CUsersView*)TabWnd.GetTabWnd(0);
	if(pUserView)
		pUserView->LoadAllUserInfo();
	CSessionsView* pSessionView = (CSessionsView*)TabWnd.GetTabWnd(1);
	if(pSessionView)
		pSessionView->LoadAliveUserInfo();
}
Пример #19
0
BOOL CResizableSheet::OnInitDialog() 
{
	BOOL bResult = CPropertySheet::OnInitDialog();

	// prevent flickering
	GetTabControl()->ModifyStyle(0, WS_CLIPSIBLINGS);

	m_bInitDone = TRUE;

	return bResult;
}
Пример #20
0
/*--------------------------------------------------------------------
FUNCTION:	AddTreeView();
RETURNS:	<void>
PURPOSE:	Adds the tree view control to the standard
			property sheet.
--------------------------------------------------------------------*/
void		CTreePropertySheet::AddTreeView()
{
	// Insert the space to the left
	int		nAddSpace=m_nTreeWidth+m_nSpaceLeft;
	int		nLeft=nAddSpace/2;
	int		nRight=(nAddSpace-nLeft);
	int		nTopOfTreeView;
	CRect	rcWindow,rcPage,rcTab;

	GetWindowRect(&rcWindow);
	rcWindow.left-=nLeft;
	rcWindow.right+=nRight;
	MoveWindow(&rcWindow,FALSE);

	GetPage(0)->GetWindowRect(&rcPage);
	ScreenToClient(&rcPage);
	GetTabControl()->GetWindowRect(&rcTab);
	ScreenToClient(&rcTab);

	ScrollWindow(nAddSpace,0);

	if(m_bSpecialCaption)
		nTopOfTreeView	=rcPage.top;
	else
		nTopOfTreeView	=rcPage.top-m_nCaptionHeight;

 
  // added in version 3.50 for Wine - otherwise tree view was in wrong place
  nTopOfTreeView = 5;

  // NJG - added  TVS_SHOWSELALWAYS

  
	m_cTreeCtrl.CWnd::CreateEx(WS_EX_CLIENTEDGE,
							 WC_TREEVIEW, 
							 NULL, 
							 WS_CHILD|WS_VISIBLE|WS_TABSTOP|TVS_SHOWSELALWAYS|
							 TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS, 
							 m_nSpaceLeft,nTopOfTreeView,m_nTreeWidth,rcTab.bottom-nTopOfTreeView+5,
							 GetSafeHwnd(), 
							 (HMENU)ID_TREECTRL);

  
  BOOL bIsUnicode;


#ifdef UNICODE
  bIsUnicode = TreeView_SetUnicodeFormat (m_cTreeCtrl.m_hWnd, 1);
#else
  bIsUnicode = TreeView_SetUnicodeFormat (m_cTreeCtrl.m_hWnd, 0);
#endif


}
Пример #21
0
void CxDlgPropertySheetSqlWizard::OnHelp()
{
	CTabCtrl* pTab = GetTabControl();
	ASSERT(pTab);
	if (pTab)
	{
		int nActivePage = pTab->GetCurSel();
		CPropertyPage* pPage = GetPage(nActivePage);
		if (pPage)
			pPage->SendMessage (WM_HELP);
	}
}
Пример #22
0
BOOL COptionSheet::SetPageTitle (int nPage, LPTSTR pszText)
{
    CTabCtrl* pTab = GetTabControl();
    ASSERT (pTab);

    TC_ITEM ti;
    ti.mask = TCIF_TEXT;
    ti.pszText = pszText;
    VERIFY (pTab->SetItem (nPage, &ti));

    return TRUE;
}
Пример #23
0
BOOL CResizableSheet::ArrangeLayoutCallback(LAYOUTINFO &layout) const
{
	if (layout.nCallbackID != m_nCallbackID)	// we only added 1 callback
		return CResizableLayout::ArrangeLayoutCallback(layout);

	// set layout info for active page
	layout.hWnd = (HWND)::SendMessage(m_hWnd, PSM_GETCURRENTPAGEHWND, 0, 0);
	if (!::IsWindow(layout.hWnd))
		return FALSE;

	// set margins
	if (IsWizard())	// wizard mode
	{
		// use pre-calculated margins
		layout.marginTopLeft = m_sizePageTL;
		layout.marginBottomRight = m_sizePageBR;
	}
	else	// tab mode
	{
		CTabCtrl* pTab = GetTabControl();
		ASSERT(pTab != NULL);

		// get tab position after resizing and calc page rect
		CRect rectPage, rectSheet;
		GetTotalClientRect(&rectSheet);

		if (!GetAnchorPosition(pTab->m_hWnd, rectSheet, rectPage))
			return FALSE; // no page yet

		// temporarily resize the tab control to calc page size
		CRect rectSave;
		pTab->GetWindowRect(rectSave);
		::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rectSave, 2);
		pTab->SetRedraw(FALSE);
		pTab->MoveWindow(rectPage, FALSE);
		pTab->AdjustRect(FALSE, &rectPage);
		pTab->MoveWindow(rectSave, FALSE);
		pTab->SetRedraw(TRUE);

		// set margins
		layout.marginTopLeft = rectPage.TopLeft() - rectSheet.TopLeft();
		layout.marginBottomRight = rectPage.BottomRight() - rectSheet.BottomRight();
	}

	// set anchor types
	layout.anchorTopLeft = TOP_LEFT;
	layout.anchorBottomRight = BOTTOM_RIGHT;

	// use this layout info
	return TRUE;
}
Пример #24
0
void CRunTestsSheet::OnSize(UINT nType, int cx, int cy) 
{
  // WS_OVERLAPPEDWINDOW would preclude caption bar help button
  ModifyStyle(0,WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME ,0);
  CeCosPropertySheet::OnSize(nType, cx, cy);
  if(SIZE_MINIMIZED!=nType){
    CRect rect;
    GetWindowRect(rect);
    TRACE(_T("OnSize(%d) left=%d top=%d right=%d bottom=%d ar=%d\n"),nType,rect.left,rect.top,rect.right,rect.bottom,m_bAllowResizing);
    
    m_rcOffset.left  =rect.left-m_rcPrev.left;
    m_rcOffset.right =rect.right-m_rcPrev.right;
    m_rcOffset.top   =rect.top-m_rcPrev.top;
    m_rcOffset.bottom=rect.bottom-m_rcPrev.bottom;
    
    m_rcPrev=rect;
    
    if(m_bAllowResizing){
      cx=max(m_cxMin,cx); 
      cy=max(m_cyMin,cy);
      MoveWindow(GetTabControl(),Stretch);
      CRect rc[sizeof(arIds)/sizeof(arIds[0])];
      CRect rcSheet;
      GetWindowRect(rcSheet);
      for(int i=0;i<sizeof(arIds)/sizeof(arIds[0]);i++){
        CWnd *pWnd=GetDlgItem(arIds[i]);
        if(pWnd){
          pWnd->GetWindowRect(rc[i]);
          ScreenToClient(rc[i]);
          MoveWindow(pWnd,BottomRight,FALSE);
        }
      }

      for(i=0;i<sizeof(arIds)/sizeof(arIds[0]);i++){
        CWnd *pWnd=GetDlgItem(arIds[i]);
        if(pWnd){
          pWnd->Invalidate();
          InvalidateRect(rc[i]);
        } else {
          TRACE(_T("Failed to find window id=%x\n"),arIds[i]);
        }
      }
      
      for(i=0;i<GetPageCount();i++){
        MoveWindow(GetPage(i),Stretch);
      }
      
    }
  }
}
Пример #25
0
void CAdminView::OnInitialUpdate()
{
	CBCGPTabView::OnInitialUpdate();

	CBCGPTabWnd& 	Tabwnd = GetTabControl();
	// 设置 Tab 视图的外观:标签在上端,不显示标签按钮,禁止tab页面位置交换
	Tabwnd.SetLocation(CBCGPBaseTabWnd::LOCATION_TOP);
	Tabwnd.SetButtonsVisible(FALSE);
	Tabwnd.EnableTabSwap(FALSE);
	Tabwnd.RecalcLayout();
	// 请求所有用户信息
	// CMainFrame* pFrm = (CMainFrame*)AfxGetMainWnd();
	theApp.m_sockUserAdmin.SendFrm_ReqUsersInfo();
}
BOOL CTreePropSheetBase::SelectCurrentPageTreeItem()
{
	CTabCtrl	*pTab = GetTabControl();
	if (!IsWindow(pTab->GetSafeHwnd()))
		return FALSE;

  // TreePropSheetEx: Fix problem when removing last page from control.
  int nPage = pTab->GetCurSel();
  if( nPage >= 0 && nPage < pTab->GetItemCount() )
    return SelectPageTreeItem( nPage );
  // TreePropSheetEx: End fix problem when removing last page from control.

  return FALSE;
}
Пример #27
0
/*--------------------------------------------------------------------
FUNCTION:	HideTabControl();
RETURNS:	<void>
PURPOSE:	Hides the tab control of the property sheet.
--------------------------------------------------------------------*/
void		CTreePropertySheet::HideTabControl()
{
	CRect	rcClient,rcTab,rcPage,rcWindow;

	GetClientRect(&rcClient);
	GetTabControl()->GetWindowRect(&rcTab);
	GetPage(0)->GetClientRect(&rcPage);
	GetPage(0)->MapWindowPoints(this,&rcPage);
	GetWindowRect(&rcWindow);
	ScreenToClient(&rcTab);

  // NJG - to fix Wine bug (with stuff off on RH side)
//	ScrollWindow(	m_nSpaceMid-rcPage.left,
//					m_nSpaceTop-rcPage.top+m_nCaptionHeight);
	rcWindow.right+=m_nSpaceMid-rcPage.left-(rcClient.Width()-rcTab.right)+m_nSpaceRight;
	rcWindow.bottom+=m_nSpaceTop-rcPage.top+m_nCaptionHeight;

	GetTabControl()->ShowWindow(SW_HIDE);

  // NJG - to fix Wine bug (with stuff off on RH side)

//	MoveWindow(&rcWindow,FALSE);
}
Пример #28
0
void CBCGPropertySheet::AddPage(CPropertyPage* pPage)
{
	CPropertySheet::AddPage (pPage);

	if (GetSafeHwnd () == NULL || m_look == PropSheetLook_Tabs)
	{
		return;
	}

	CTabCtrl* pTab = GetTabControl ();
	ASSERT_VALID (pTab);

	InternalAddPage (pTab->GetItemCount () - 1);
}
Пример #29
0
int CCoolFormat3View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	//if (CBCGPTabView::OnCreate(lpCreateStruct) == -1)
	//	return -1;

	//////////////////////////////////////////////////////////////////////////
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;

	CRect rectDummy;
	rectDummy.SetRectEmpty();

	// Create tabs window:
	if (!m_wndTabs.Create(CBCGPTabWnd::STYLE_3D, rectDummy, this, 1))
	{
		TRACE0("Failed to create tab window\n");
		return -1;      // fail to create
	}
	m_wndTabs.ModifyTabStyle(CBCGPTabWnd::STYLE_3D_VS2005);

	m_wndTabs.SetFlatFrame(TRUE, FALSE);
	m_wndTabs.SetTabBorderSize(0, FALSE);
	m_wndTabs.AutoDestroyWindow(FALSE);
	//////////////////////////////////////////////////////////////////////////

	GetTabControl().EnableTabSwap(FALSE);
	GetTabControl().HideSingleTab(TRUE);
	GetTabControl().AutoDestroyWindow(TRUE);
	m_hAccel = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ACCEL_EDIT));

	CString strTemp;
	BOOL bNameVaild = strTemp.LoadString(ID_TAB_CODE);
	ASSERT(bNameVaild);
	AddView(RUNTIME_CLASS(CSynBCGPEditView), strTemp, ID_TAB_CODE);

	return 0;
}
Пример #30
0
BOOL CMyPropertySheet::OnInitDialog()
{
	
	BOOL bResult = CPropertySheet::OnInitDialog();	
 
	//计算属性页的矩形,扩大属性表并将属性页其移至右侧
	CRect rect, rectPage, rectTab;
	GetPage(0)->GetWindowRect(&rectPage);
	
	GetWindowRect(&rect);
	rect.right += 150;
	
    int nWidth = rectPage.Width();
	rectPage.right = rect.right - 20; 
	rectPage.left = rect.right - nWidth;
	ScreenToClient(&rectPage);
	m_rectPage = rectPage;
	MoveWindow(&rect);
	GetPage(0)->MoveWindow(&rectPage);
    
	//隐藏属性页原来的TabControl
	CTabCtrl *pTab = GetTabControl() ;
	pTab->GetWindowRect(&rectTab);
	ScreenToClient(&rectTab);
	if(!pTab->ShowWindow(SW_HIDE))
		return FALSE;

	
	
   
	//创建列表控件并用一个CImageList对象与之关联
	if(!m_wndList.Create(WS_CHILD | WS_VISIBLE |  LVS_REPORT | LVS_NOCOLUMNHEADER , CRect(10 ,rectTab.top,150,rectPage.bottom ),this,0xFFFF))
		return FALSE;
	m_wndList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	m_wndList.SetImageList(&m_imgList, LVSIL_SMALL);
	
	InitList();

	//这一步是为了扩大行高度
	CFont font;
	font.CreatePointFont(240,_T("宋体"));
	m_wndList.SetFont(&font);
	
	CString strCaption;
	GetPage(0)->GetWindowText(strCaption);	
	_tcscpy(m_szCaption, strCaption.GetBuffer(strCaption.GetLength()));	

	return bResult;
}