Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа №42 / Dlg3d
.cpp// Dlg3d.cpp : implementation file
//
#include "stdafx.h"
#include "GLlab.h"
#include "Dlg3d.h"
#include <gl\gl.h>
#include <gl\glu.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Dlg3d dialog
Dlg3d::Dlg3d(CWnd* pParent /*=NULL*/)
: CDialog(Dlg3d::IDD, pParent)
{
//{{AFX_DATA_INIT(Dlg3d)
m_lampX = _T("-2.0");
m_lampY = _T("2.0");
m_lampZ = _T("0.0");
m_AMBIENT = _T("50");
m_DIFFUSE = _T("100");
m_dX = _T("0.0");
m_dY = _T("0.0");
m_dZ = _T("0.0");
m_Angle = 0;
//}}AFX_DATA_INIT
Color[0]=0;Color[1]=0;Color[2]=0;Color[3]=1;
m_Slid1.SetPos(50);m_Slid2.SetPos(100);
Rotate[0]=0;Rotate[1]=0;Rotate[2]=0;
}
void Dlg3d::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Dlg3d)
DDX_Control(pDX, IDC_SLIDER2, m_Slid2);
DDX_Control(pDX, IDC_SLIDER1, m_Slid1);
DDX_Text(pDX, IDC_EDIT1, m_lampX);
DDX_Text(pDX, IDC_EDIT2, m_lampY);
DDX_Text(pDX, IDC_EDIT3, m_lampZ);
DDX_Text(pDX, IDC_EDIT4, m_AMBIENT);
DDX_Text(pDX, IDC_EDIT5, m_DIFFUSE);
DDX_Text(pDX, IDC_EDIT6, m_dX);
DDX_Text(pDX, IDC_EDIT7, m_dY);
DDX_Text(pDX, IDC_EDIT8, m_dZ);
DDX_Text(pDX, IDC_EDIT9, m_Angle);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Dlg3d, CDialog)
//{{AFX_MSG_MAP(Dlg3d)
ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
ON_BN_CLICKED(IDC_CHECK2, OnCheck2)
ON_BN_CLICKED(IDC_CHECK3, OnCheck3)
ON_WM_HSCROLL()
ON_BN_CLICKED(IDC_CHECK4, OnCheck4)
ON_BN_CLICKED(IDC_CHECK5, OnCheck5)
ON_BN_CLICKED(IDC_CHECK6, OnCheck6)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Dlg3d message handlers
void Dlg3d::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
CDialog::OnOK();
}
void Dlg3d::OnCheck1()
{
// TODO: Add your control notification handler code here
Color[0]=1;
// UpdateData(false);
}
void Dlg3d::OnCheck2()
{
// TODO: Add your control notification handler code here
Color[1]=1;
// UpdateData(false);
}
void Dlg3d::OnCheck3()
{
// TODO: Add your control notification handler code here
Color[2]=1;
// UpdateData(false);
}
BOOL Dlg3d::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_Slid1.SetRangeMin(1,false);
m_Slid1.SetRangeMax(100,false);
m_Slid2.SetRangeMin(1,false);
m_Slid2.SetRangeMax(100,false);
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void Dlg3d::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
CSliderCtrl* slider = (CSliderCtrl* ) pScrollBar;
if (nSBCode == SB_THUMBPOSITION) {
if (slider->GetPos() == m_Slid1.GetPos())
{ m_AMBIENT.Format("%ld",nPos);
UpdateData(false);
}else{
m_DIFFUSE.Format("%ld",nPos);
UpdateData(false);
}
}else{
if (nSBCode == SB_THUMBTRACK) {
if (slider->GetPos() == m_Slid1.GetPos())
{ m_AMBIENT.Format("%ld",nPos);
UpdateData(false);
}else{
m_DIFFUSE.Format("%ld",nPos);
UpdateData(false);
}
} else {
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
}
}
void Dlg3d::OnCheck4()
{
// TODO: Add your control notification handler code here
Rotate[0]=1;
}
void Dlg3d::OnCheck5()
{
// TODO: Add your control notification handler code here
Rotate[1]=1;
}
void Dlg3d::OnCheck6()
{
// TODO: Add your control notification handler code here
Rotate[2]=1;
}