www.pudn.com > VisualC6.0.rar > TalDlg.cpp, change:2007-08-02,size:3114b


// TalDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "TabDlgDemo.h" 
#include "TalDlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CTalDlg dialog 
 
 
CTalDlg::CTalDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CTalDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CTalDlg) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
} 
 
 
void CTalDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CTalDlg) 
	DDX_Control(pDX, IDC_TAB1, m_theTab); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CTalDlg, CDialog) 
	//{{AFX_MSG_MAP(CTalDlg) 
	ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnSelchangeTab1) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CTalDlg message handlers 
 
BOOL CTalDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
	// TODO: Add extra initialization here 
	TC_ITEM   m_pTCItem1;    
	m_pTCItem1.mask= TCIF_TEXT;    
	m_pTCItem1.pszText= "颜色";    
	m_theTab.InsertItem(0, &m_pTCItem1);   //添加标签项 
	TC_ITEM   m_pTCItem2;    
	m_pTCItem2.mask = TCIF_TEXT;    
	m_pTCItem2.pszText = "字号";    
	m_theTab.InsertItem(1, &m_pTCItem2);  //添加标签项  
	CRect tabRect, itemRect;//计算标签控件的位置和区域 
	int nX, nY, nXc, nYc; 
	m_theTab.GetClientRect(&tabRect); 
	m_theTab.GetItemRect(0, &itemRect); 
	nX=itemRect.left; 
	nY=itemRect.bottom+15; 
	nXc=tabRect.right-itemRect.left-1; 
	nYc=tabRect.bottom-nY-1; 
	m_colordlg.Create(IDD_DIALOG1,this);  //创建标签页窗口  
	m_colordlg.SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_SHOWWINDOW);//移动到指定位置显示 
	m_fontdlg.Create(IDD_DIALOG2,this);  
	m_fontdlg.SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_HIDEWINDOW);//移动到指定位置隐藏 
	return TRUE;  // return TRUE unless you set the focus to a control	              
} 
 
void CTalDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)  
{ 
	// TODO: Add your control notification handler code here 
	int iPage=m_theTab.GetCurSel();//所选标签号 
	switch(iPage){ 
	case 0://颜色设置 
   	m_colordlg.ShowWindow(SW_SHOW); 
	m_fontdlg.ShowWindow(SW_HIDE); 
	break; 
    case 1://字体大小设置 
	m_colordlg.ShowWindow(SW_HIDE); 
	m_fontdlg.ShowWindow(SW_SHOW); 
   break; 
  } 
 
	 
	*pResult = 0; 
} 
 
void CTalDlg::OnOK()  
{ 
	// TODO: Add extra validation here 
	m_colordlg.UpdateData(true);//获取颜色标签页数据 
	switch(m_colordlg.m_radio) 
	{ 
	case 0: 
		fntColor=RGB(255,0,0);//红色 
		break; 
	case 1: 
		fntColor=RGB(0,255,0);//绿色 
		break; 
	case 2: 
		fntColor=RGB(0,0,255);//蓝色 
		break; 
	case 3: 
		fntColor=RGB(m_colordlg.m_r,m_colordlg.m_g,m_colordlg.m_b);//自定义颜色 
		break; 
	} 
	m_fontdlg.UpdateData(true);//获取字号标签页数据 
	switch(m_fontdlg.m_radio) 
	{ 
	case 0: 
		m_height=60;//大号 
		break; 
	case 1: 
		m_height=30;//中号 
		break; 
	case 2: 
		m_height=15;//小号 
		break; 
	case 3: 
		m_height=m_fontdlg.m_height;//自定义字号 
		break; 
	} 
	CDialog::OnOK(); 
}