www.gusucode.com > 一个简单的VC++程序安装向导源代码源码程序 > 一个简单的VC++程序安装向导源代码/dog/dog/MyDlg2.cpp

    // MyDlg2.cpp : implementation file
// Download by http://www.codesc.net

#include "stdafx.h"
#include "dog.h"
#include "MyDlg2.h"
#include "MyDlg3.h"
#include "dogDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMyDlg2 dialog


CMyDlg2::CMyDlg2(CWnd* pParent /*=NULL*/)
	: CDialog(CMyDlg2::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMyDlg2)
	//}}AFX_DATA_INIT
}
void CMyDlg2::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyDlg2)
	DDX_Control(pDX, IDC_GREEN_EDIT, m_Green_Edit);
	DDX_Control(pDX, IDC_BLUE_EDIT, m_Blue_Edit);
	DDX_Control(pDX, IDC_RED_EDIT, m_Red_Edit);
	DDX_Control(pDX, IDC_GREEN_SCROLLBAR, m_Green_ScrollBar);
	DDX_Control(pDX, IDC_BLUE_SCROLLBAR, m_Blue_ScrollBar);
	DDX_Control(pDX, IDC_RED_SCROLLBAR, m_Red_ScrollBar);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMyDlg2, CDialog)
	//{{AFX_MSG_MAP(CMyDlg2)
	ON_BN_CLICKED(IDC_CANCLE, OnCancle)
	ON_BN_CLICKED(IDC_PRE1, OnPre1)
	ON_WM_VSCROLL()
	ON_BN_CLICKED(IDC_NEXT, OnNext)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyDlg2 message handlers

BOOL CMyDlg2::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
    //初始化滚动条
	m_Red_ScrollBar.SetScrollRange(0,255); //设定滚动条的范围
	m_Green_ScrollBar.SetScrollRange(0,255);
	m_Blue_ScrollBar.SetScrollRange(0,255);
	m_Red_ScrollBar.SetScrollPos(100);   //设定滑块当前位置
	m_Green_ScrollBar.SetScrollPos(100); 
	m_Blue_ScrollBar.SetScrollPos(100); 
	char sPos[10];
	itoa(m_Red_ScrollBar.GetScrollPos(),sPos,10);
	m_Red_ScrollBar.SetWindowText(sPos);
	itoa(m_Green_ScrollBar.GetScrollPos(),sPos,10);
	m_Green_ScrollBar.SetWindowText(sPos);
	itoa(m_Blue_ScrollBar.GetScrollPos(),sPos,10);
	m_Blue_ScrollBar.SetWindowText(sPos);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CMyDlg2::OnCancle() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();	
}

void CMyDlg2::OnPre1() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnOK();
	//添加调用第二页的代码
	CDogDlg dlg;
	dlg.DoModal();	
}

void CMyDlg2::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
	char sPos[10];                 //记录滚动条当前位置
	int iRedNowPos,iGreenNowPos,iBlueNowPos;//记录滚动条的整形数
	iRedNowPos=m_Red_ScrollBar.GetScrollPos();//获得滚动条当前位置
	iGreenNowPos=m_Green_ScrollBar.GetScrollPos();
	iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();
	if(pScrollBar==&m_Red_ScrollBar)    //对红色滚动条进行操作
	{
		switch(nSBCode)
		{
		case SB_THUMBTRACK:                    //拖动滚动条
			m_Red_ScrollBar.SetScrollPos(nPos);//设定滚动条位置
			iRedNowPos=nPos;
			break;
		case SB_LINEDOWN:                      //按向下按钮
			iRedNowPos=m_Red_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iRedNowPos=iRedNowPos+1;           //位置量+1
			if(iRedNowPos>255)
				iRedNowPos=255;
			break;
		case SB_LINEUP:                        //按向上按钮
			iRedNowPos=m_Red_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iRedNowPos=iRedNowPos-1;           //位置量-1
			if(iRedNowPos<0)
				iRedNowPos=0;
			break;
		case SB_PAGEDOWN:              //按向上按钮和滑块之间的区域
			iRedNowPos=m_Red_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iRedNowPos=iRedNowPos+10;           //位置量+10
			if(iRedNowPos>255)
				iRedNowPos=255;
			break;
		case SB_PAGEUP:                //按向下按钮和滑块之间的区域
			iRedNowPos=m_Red_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iRedNowPos=iRedNowPos-10;           //位置量-10
			if(iRedNowPos<0)
				iRedNowPos=0;
			break;
		}
	}
	if(pScrollBar==&m_Green_ScrollBar)    //对绿色滚动条进行操作
	{
		switch(nSBCode)
		{
		case SB_THUMBTRACK:                    //拖动滚动条
			m_Green_ScrollBar.SetScrollPos(nPos);//设定滚动条位置
			iGreenNowPos=nPos;
			break;
		case SB_LINEDOWN:                      //按向下按钮
			iGreenNowPos=m_Green_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iGreenNowPos=iGreenNowPos+1;           //位置量+1
			if(iGreenNowPos>255)
				iGreenNowPos=255;
			break;
		case SB_LINEUP:                        //按向上按钮
			iGreenNowPos=m_Green_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iGreenNowPos=iGreenNowPos-1;           //位置量-1
			if(iGreenNowPos<0)
				iGreenNowPos=0;
			break;
		case SB_PAGEDOWN:              //按向上按钮和滑块之间的区域
			iGreenNowPos=m_Green_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iGreenNowPos=iGreenNowPos+10;           //位置量+10
			if(iGreenNowPos>255)
				iGreenNowPos=255;
			break;
		case SB_PAGEUP:                //按向下按钮和滑块之间的区域
			iGreenNowPos=m_Green_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iGreenNowPos=iGreenNowPos-10;           //位置量-10
			if(iGreenNowPos<0)
				iGreenNowPos=0;
			break;
		}
	}
	if(pScrollBar==&m_Blue_ScrollBar)    //对蓝色滚动条进行操作
	{
		switch(nSBCode)
		{
		case SB_THUMBTRACK:                    //拖动滚动条
			m_Blue_ScrollBar.SetScrollPos(nPos);//设定滚动条位置
			iBlueNowPos=nPos;
			break;
		case SB_LINEDOWN:                      //按向下按钮
			iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iBlueNowPos=iBlueNowPos+1;           //位置量+1
			if(iBlueNowPos>255)
				iBlueNowPos=255;
			break;
		case SB_LINEUP:                        //按向上按钮
			iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iBlueNowPos=iBlueNowPos-1;           //位置量-1
			if(iBlueNowPos<0)
				iBlueNowPos=0;
			break;
		case SB_PAGEDOWN:              //按向上按钮和滑块之间的区域
			iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iBlueNowPos=iBlueNowPos+10;           //位置量+10
			if(iBlueNowPos>255)
				iBlueNowPos=255;
			break;
		case SB_PAGEUP:                //按向下按钮和滑块之间的区域
			iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();//得到当前滚动条位置
			iBlueNowPos=iBlueNowPos-10;           //位置量-10
			if(iBlueNowPos<0)
				iBlueNowPos=0;
			break;
		}
	}
		//设定滑块位置和在编辑框中的显示
	m_Red_ScrollBar.SetScrollPos(iRedNowPos);
	itoa(iRedNowPos,sPos,10);
	m_Red_Edit.SetWindowText(sPos);
	m_Green_ScrollBar.SetScrollPos(iGreenNowPos);
	itoa(iGreenNowPos,sPos,10);
	m_Green_Edit.SetWindowText(sPos);
	m_Blue_ScrollBar.SetScrollPos(iBlueNowPos);
	itoa(iBlueNowPos,sPos,10);
	m_Blue_Edit.SetWindowText(sPos);

	//图像输出
	CDC *pDC;                        //定义设备环境指针
	pDC=GetDC();                     //得到设备环境指针
	CBrush newBrush;                       //定义新画刷
	CPen newPen;
	newBrush.CreateSolidBrush(RGB(iRedNowPos,iGreenNowPos,iBlueNowPos));
	newPen.CreatePen(PS_SOLID,1,RGB(iRedNowPos,iGreenNowPos,iBlueNowPos));
	pDC->SelectObject(&newPen);
	pDC->SelectObject(&newBrush);
/*	HDC hdc;
	HPEN hpen;
	HBRUSH hbrush;
	hdc=GetDC();
	hpen=CreatePen(PS_SOLID,1,RGB(iRedNowPos,iGreenNowPos,iBlueNowPos));
	hbrush=CreateSolidBrush(RGB(iRedNowPos,iGreenNowPos,iBlueNowPos));
    Ellipse(70,30,170,200);*/
	pDC->Ellipse(160,67,180,87);
	pDC->Ellipse(255,67,275,87);
	pDC->MoveTo(132,62);
	pDC->LineTo(314,62);
	pDC->LineTo(314,130);
	pDC->LineTo(132,130);
	pDC->LineTo(132,62);
	ReleaseDC(pDC);	
	CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
void CMyDlg2::OnNext() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnOK();
	CMyDlg3 dlg3;
	dlg3.DoModal();	
}