📄 hoopstestview.cpp
字号:
if (danbai_jindu < 4)
{
danbai_jindu = 4;
}
}
void ChoopstestView::OnTanhuang1()
{
WriteToFile("看弹簧实验介绍");
HC_Open_Segment_By_Key(m_pHView->GetModelKey());
HC_Flush_Contents(".","everything");
HC_Include_Segment("/tanhuang_introduce");
HC_Include_Segment("/tools/tanhuang");
HC_Close_Segment();
HC_Update_Display();
state = 11;
StopSim(2);
if (tanhuang_jindu < 1)
{
tanhuang_jindu = 1;
}
}
void ChoopstestView::OnTanhuang2()
{
WriteToFile("做弹簧实验猜一猜");
HC_Open_Segment_By_Key(m_pHView->GetModelKey());
HC_Flush_Contents(".","everything");
HC_Include_Segment("/tanhuang_guess");
HC_Include_Segment("/tools/tanhuang");
HC_Close_Segment();
HC_Update_Display();
state = 12;
StopSim(2);
if (tanhuang_jindu < 2)
{
tanhuang_jindu = 2;
}
}
void ChoopstestView::OnTanhuang3()
{
WriteToFile("看弹簧实验做一做");
HC_Open_Segment_By_Key(m_pHView->GetModelKey());
HC_Flush_Contents(".","everything");
HC_Include_Segment("/tanhuang_try");
HC_Include_Segment("/tools/tanhuang");
HC_Close_Segment();
HC_Update_Display();
state = 13;
StopSim(2);
if (tanhuang_jindu < 3)
{
tanhuang_jindu = 3;
}
}
void ChoopstestView::OnTanhuang4()
{
WriteToFile("做弹簧实验想一想");
HC_Open_Segment_By_Key(m_pHView->GetModelKey());
HC_Flush_Contents(".","everything");
HC_Include_Segment("/tanhuang_think");
HC_Include_Segment("/tools/tanhuang");
HC_Close_Segment();
HC_Update_Display();
state = 14;
StopSim(2);
if (tanhuang_jindu < 4)
{
tanhuang_jindu = 4;
}
}
BOOL ChoopstestView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
//屏蔽掉基类的鼠标滚轮Zoom处理
//return CHoopsView::OnMouseWheel(nFlags, zDelta, pt);
return FALSE;
}
void ChoopstestView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
//屏蔽掉基类的鼠标双击事件处理
//CHoopsView::OnLButtonDblClk(nFlags, point);
}
void ChoopstestView::OnLButtonDown(UINT nFlags, CPoint point)
{
down_point = point;
degree = fPhase;
switch (state)
{
case 3:
{
WriteToFile("开始做单摆实验。默认实验道具为短线,小球");
HC_Open_Segment_By_Key(m_pHView->GetModelKey());
HC_Flush_Contents(".","everything");
HC_Include_Segment("/danbai_dotry");
HC_Close_Segment();
HC_Update_Display();
state = 5;
LocalSetOperator(new HOpSelectArea(m_pHView));
break;
}
case 5:
{
//让基类处理选择事件
CHoopsView::OnLButtonDown(nFlags, point);
CHoopsView::OnLButtonUp(nFlags, point);
HSelectionSet * st = m_pHView->GetSelection();
if(st->GetSize() > 0)
{
HC_KEY sg;
sg = st->GetAt(0);
if (sg == keyBigBall)
{
WriteToFile("道具选择为大球");
fBallSize = 0.2;
}
if (sg == keySmallBall)
{
WriteToFile("道具选择为小球");
fBallSize = 0.1;
}
if (sg == keyLongLine)
{
WriteToFile("道具选择为长线");
fLineLength = 1.5;
}
if (sg == keyShortLine)
{
WriteToFile("道具选择为短线");
fLineLength = 1;
}
if (sg == keyGO)
{
WriteToFile("运行单摆的模拟仿真");
state = 6;
//“运行”替换为“停止”
HC_Open_Segment("/danbai_dotry/button");
HC_Flush_Contents(".","everything"); HC_Translate_Object(-2,-1.2,0); HC_Include_Segment("/texts/stop");
HC_Close_Segment();
SetTimer(1,1,NULL);
SetTimer(4,1000,NULL);
}
}
st->DeSelectAll();
break;
}
case 6:
{
//让基类处理选择事件
CHoopsView::OnLButtonDown(nFlags, point);
CHoopsView::OnLButtonUp(nFlags, point);
HSelectionSet * st = m_pHView->GetSelection();
if(st->GetSize() > 0)
{
HC_KEY sg;
sg = st->GetAt(0);
if (sg == keySTOP)
{
WriteToFile("停止单摆的模拟仿真");
#ifdef SECEND
fPhase = Max;
#endif
StopSim(1);
state = 5;
}
}
break;
}
case 13:
{
WriteToFile("开始做弹簧实验。默认实验道具为粗弹簧,小球");
HC_Open_Segment_By_Key(m_pHView->GetModelKey());
HC_Flush_Contents(".","everything");
HC_Include_Segment("/tanhuang_dotry");
HC_Close_Segment();
HC_Update_Display();
state = 15;
LocalSetOperator(new HOpSelectArea(m_pHView));
break;
}
case 15:
{
//让基类处理选择事件
CHoopsView::OnLButtonDown(nFlags, point);
CHoopsView::OnLButtonUp(nFlags, point);
HSelectionSet * st = m_pHView->GetSelection();
if(st->GetSize() > 0)
{
HC_KEY sg;
sg = st->GetAt(0);
if (sg == keyBigBall)
{
WriteToFile("道具选择为大球");
fBallSize = 0.2;
}
if (sg == keySmallBall)
{
WriteToFile("道具选择为小球");
fBallSize = 0.1;
}
if (sg == keyBigTanhuang)
{
WriteToFile("道具选择为大弹簧");
K = 5;
sTanhuang = "/tools/bigtanhuang";
}
if (sg == keySmallTanhuang)
{
WriteToFile("道具选择为小弹簧");
K = 3;
sTanhuang = "/tools/smalltanhuang";
}
if (sg == keyGO)
{
WriteToFile("运行弹簧模拟仿真");
state = 16;
//“运行”替换为“停止”
HC_Open_Segment("/tanhuang_dotry/button");
HC_Flush_Contents(".","everything"); HC_Translate_Object(-2,-1.2,0); HC_Include_Segment("/texts/stop");
HC_Close_Segment();
SetTimer(2,1,NULL);
}
}
break;
}
case 16:
{
//让基类处理选择事件
CHoopsView::OnLButtonDown(nFlags, point);
CHoopsView::OnLButtonUp(nFlags, point);
HSelectionSet * st = m_pHView->GetSelection();
if(st->GetSize() > 0)
{
WriteToFile("停止弹簧模拟仿真");
HC_KEY sg;
sg = st->GetAt(0);
if (sg == keySTOP)
{
StopSim(2);
state = 15;
}
}
break;
}
default:
{
break;
}
}
}
void ChoopstestView::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
switch (state)
{
case 2:
{
if (nChar == 'A')
{
if (sDanbaiGuess.Find("A") == -1)
{
sDanbaiGuess += "A";
HC_Open_Segment("/danbai_guess");
HC_Open_Segment("answer/A");
HC_Set_Text_Font("size = 0.03 sru"); HC_Set_Color("text = red"); HC_Insert_Text(0.6,0.5,0,"(A)");
HC_Close_Segment();
HC_Close_Segment();
}
else
{
sDanbaiGuess.Replace("A","");
HC_Open_Segment("/danbai_guess/answer/A");
HC_Flush_Contents(".","everything");
HC_Close_Segment();
}
}
if (nChar == 'B')
{
if (sDanbaiGuess.Find("B") == -1)
{
sDanbaiGuess += "B";
HC_Open_Segment("/danbai_guess");
HC_Open_Segment("answer/B");
HC_Set_Text_Font("size = 0.03 sru"); HC_Set_Color("text = red"); HC_Insert_Text(0.8,0.5,0,"(B)");
HC_Close_Segment();
HC_Close_Segment();
}
else
{
sDanbaiGuess.Replace("B","");
HC_Open_Segment("/danbai_guess/answer/B");
HC_Flush_Contents(".","everything");
HC_Close_Segment();
}
}
if (nChar == 'C')
{
if (sDanbaiGuess.Find("C") == -1)
{
sDanbaiGuess += "C";
HC_Open_Segment("/danbai_guess");
HC_Open_Segment("answer/C");
HC_Set_Text_Font("size = 0.03 sru"); HC_Set_Color("text = red"); HC_Insert_Text(1,0.5,0,"(C)");
HC_Close_Segment();
HC_Close_Segment();
}
else
{
sDanbaiGuess.Replace("C","");
HC_Open_Segment("/danbai_guess/answer/C");
HC_Flush_Contents(".","everything");
HC_Close_Segment();
}
}
if (nChar == 'D')
{
if (sDanbaiGuess.Find("D") == -1)
{
sDanbaiGuess += "D";
HC_Open_Segment("/danbai_guess");
HC_Open_Segment("answer/D");
HC_Set_Text_Font("size = 0.03 sru"); HC_Set_Color("text = red"); HC_Insert_Text(1.2,0.5,0,"(D)");
HC_Close_Segment();
HC_Close_Segment();
}
else
{
sDanbaiGuess.Replace("D","");
HC_Open_Segment("/danbai_guess/answer/D");
HC_Flush_Contents(".","everything");
HC_Close_Segment();
}
}
#ifndef SECEND
if (nChar == 'E')
{
if (sDanbaiGuess.Find("E") == -1)
{
sDanbaiGuess += "E";
HC_Open_Segment("/danbai_guess");
HC_Open_Segment("answer/E");
HC_Set_Text_Font("size = 0.03 sru"); HC_Set_Color("text = red"); HC_Insert_Text(1.4,0.5,0,"(E)");
HC_Close_Segment();
HC_Close_Segment();
}
else
{
sDanbaiGuess.Replace("E","");
HC_Open_Segment("/danbai_guess/answer/E");
HC_Flush_Contents(".","everything");
HC_Close_Segment();
}
}
if (nChar == 'F')
{
if (sDanbaiGuess.Find("F") == -1)
{
sDanbaiGuess += "F";
HC_Open_Segment("/danbai_guess");
HC_Open_Segment("answer/F");
HC_Set_Text_Font("size = 0.03 sru"); HC_Set_Color("text = red"); HC_Insert_Text(1.6,0.5,0,"(F)");
HC_Close_Segment();
HC_Close_Segment();
}
else
{
sDanbaiGuess.Replace("F","");
HC_Open_Segment("/danbai_guess/answer/F");
HC_Flush_Contents(".","everything");
HC_Close_Segment();
}
}
#endif
WriteToFile("单摆实验猜一猜答案:" + sDanbaiGuess);
break;
}
case 4:
{
if (nChar == 'A')
{
if (sDanbaiThink.Find("A") == -1)
{
sDanbaiThink += "A";
HC_Open_Segment("/danbai_think");
HC_Open_Segment("answer/A");
HC_Set_Text_Font("size = 0.03 sru"); HC_Set_Color("text = red"); HC_Insert_Text(0,0.2,0,"(A)");
HC_Close_Segment();
HC_Close_Segment();
}
else
{
sDanbaiThink.Replace("A","");
HC_Open_Segment("/danbai_think/answer/A");
HC_Flush_Contents(".","everything");
HC_Close_Segment();
}
}
if (nChar == 'B')
{
if (sDanbaiThink.Find("B") == -1)
{
sDanbaiThink += "B";
HC_Open_Segment("/danbai_think");
HC_Open_Segment("answer/B");
HC_Set_Text_Font("size = 0.03 sru"); HC_Set_Color("text = red"); HC_Insert_Text(0.2,0.2,0,"(B)");
HC_Close_Segment();
HC_Close_Segment();
}
else
{
sDanbaiThink.Replace("B","");
HC_Open_Segment("/danbai_think/answer/B");
HC_Flush_Contents(".","everything");
HC_Close_Segment();
}
}
if (nChar == 'C')
{
if (sDanbaiThink.Find("C") == -1)
{
sDanbaiThink += "C";
HC_Open_Segment("/danbai_think");
HC_Open_Segment("answer/C");
HC_Set_Text_Font("size = 0.03 sru"); HC_Set_Color("text = red"); HC_Insert_Text(0.4,0.2,0,"(C)");
HC_Close_Segment();
HC_Close_Segment();
}
else
{
sDanbaiThink.Replace("C","");
HC_Open_Segment("/danbai_think/answer/C");
HC_Flush_Contents(".","everything");
HC_Close_Segment();
}
}
if (nChar == 'D')
{
if (sDanbaiThink.Find("D") == -1)
{
sDanbaiThink += "D";
HC_Open_Segment("/danbai_think");
HC_Open_Segment("answer/D");
HC_Set_Text_Font("size = 0.03 sru");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -