📄 ttl_inverterdlg.cpp
字号:
rect.bottom = rect.top + block[step+sub_step].bottom*zoom;
InvalidateRect( &rect,false );
}
cnt++;
if( rect.right > (block[step].left + block[step].right)*zoom ){
if( step != 3 )
step++;
else
step += 3;
cnt = 0;
}
break;
case 4:
rect.left = block[step].left*zoom;
rect.right = rect.left + block[step].right*zoom;
rect.top = block[step].top*zoom;
rect.bottom = rect.top + block[step].bottom*zoom;
InvalidateRect( &rect,false );
cnt++;
if( byhand ){
step++;
cnt = 0;
}
else{
if( cnt > cnt_total[step] ){
step++;
cnt = 0;
}
}
case 5:
rect.left = block[step].left*zoom;
rect.right = rect.left + block[step].right*zoom;
rect.top = block[step].top*zoom;
rect.bottom = rect.top + block[step].bottom*zoom;
InvalidateRect( &rect,false );
if( times == 1 ){
temp = show_which;
show_which = 0;
SendMessage( WM_PAINT );
show_which = temp;
}
cnt++;
if( byhand ){
if( times > 2 ){
step++;
cnt = 0;
}
}
else{
if( cnt > cnt_total[step] ){
cnt = 0;
times++;
if( times > 2 ){
times = 0;
step++;
}
}
}
}
}
void Cttl_inverterDlg::ShowOneStep3()
{
int temp;
static int times = 0;
/*
int block_count[] =
{
};*/
CRect block[] = { //输入信号
CRect(432,28,246,22),//1
CRect( 92,20,29,17),CRect( 120,47,40,24),//2
CRect( 578,82,31,19),//3
CRect(308,8,41,276),//4
};
//动态显示方向:上0下1左2右3,整体4,整体闪烁5(闪1次)
int dir[] = {
5,//1--1
5,5,//5,5,//2--4
5,//3--5
5//5,5,5//4--8
};
/* int cnt_total[] = {
5,//1
5,5,//2
5,//3
5,5,5//4
};
*/
int cnt_total[] = {
1,//1
1,1,//2
1,//3
1,1,1//4
};
CRect rect;
float zoom = 580./679;
if( dir[step] != 5 ) times = 0;
switch( dir[step] ){
case 0: break;
case 1:
//向下
rect.top = block[step].top*zoom;
rect.bottom = rect.top + (block[step].bottom*cnt/cnt_total[step])*zoom;
rect.left = block[step].left*zoom;
rect.right = rect.left + block[step].right*zoom;
InvalidateRect( &rect,false );
cnt++;
if( rect.bottom > (block[step].top + block[step].bottom)*zoom ){
step ++;
cnt = 0;
}
break;
case 2:
//向左
rect.right = ( block[step].left + block[step].right )*zoom;
rect.top = block[step].top*zoom;
rect.left = rect.right - (block[step].right*cnt/cnt_total[step])*zoom;
rect.bottom = rect.top + block[step].bottom*zoom;
InvalidateRect( &rect,false );
cnt++;
if( rect.left < block[step].left*zoom ){
step++;
cnt = 0;
}
break;
case 3:
//右3
rect.left = block[step].left/2;
rect.right = rect.left + (block[step].right*cnt/cnt_total[step])/2;
rect.top = block[step].top/2;
rect.bottom = rect.top + block[step].bottom/2;
InvalidateRect( &rect,false );
cnt++;
if( rect.right > (block[step].left + block[step].right)/2 ){
step++;
cnt = 0;
}
break;
case 4:
rect.left = block[step].left*zoom;
rect.right = rect.left + block[step].right*zoom;
rect.top = block[step].top*zoom;
rect.bottom = rect.top + block[step].bottom*zoom;
InvalidateRect( &rect,false );
cnt++;
if( byhand ){
step++;
cnt = 0;
}
else{
if( cnt > cnt_total[step] ){
step++;
cnt = 0;
}
}
case 5:
rect.left = block[step].left*zoom;
rect.right = rect.left + block[step].right*zoom;
rect.top = block[step].top*zoom;
rect.bottom = rect.top + block[step].bottom*zoom;
InvalidateRect( &rect,false );
if( times == 1 ){
temp = show_which;
show_which = 0;
SendMessage( WM_PAINT );
show_which = temp;
}
cnt++;
if( byhand ){
if( times > 2 ){
step++;
cnt = 0;
}
}
else{
if( cnt > cnt_total[step] ){
cnt = 0;
times++;
if( times > 2 ){
times = 0;
step++;
}
}
}
}
}
void Cttl_inverterDlg::OnBnClickedButton5()
{
if( 1 != show_which ){
//如果以前不是显示本图
show_which = 0;//显示原图
InvalidateRect(NULL,false);
SendMessage( WM_PAINT );
show_which = 1;//显示本图
dis_step = 0;//
byhand = true;
cnt = 0;
step = 0;
timer_on = true;
timer_ID = SetTimer(1,10,NULL);
}
else{
dis_step++;
if( dis_step > 6 ){
dis_step = 6;
return;
}
byhand = true;
if( dis_step < 1 ){
cnt = 0;
step = 0;
}
timer_on = true;
timer_ID = SetTimer(1,10,NULL);
}
}
void Cttl_inverterDlg::OnBnClickedButton6()
{
int t_step[] = { 1,15,19,20,21,22,23,24 };
if( 1 != show_which ){
//如果以前不是显示本图
show_which = 0;//显示原图
InvalidateRect(NULL,false);
SendMessage( WM_PAINT );
show_which = 1;//显示本图
byhand = true;
dis_step = -1;
}
else{
dis_step--;
show_which = 0;//显示原图
cnt = 0;
InvalidateRect(NULL,false);
SendMessage( WM_PAINT );
if( dis_step < 0 ){
dis_step = -1;
return;
}
//显示
show_which = 1;
step = 0;
while( step < t_step[dis_step] )
ShowOneStep();
//SendMessage( WM_PAINT );
}
}
//〈〈〈〈〈〈〈〈〈
void Cttl_inverterDlg::OnBnClickedButton7()
{
int t_step[] = { 1,7,8,11,17,18 };
if( 2 != show_which ){
//如果以前不是显示本图
show_which = 0;//显示原图
InvalidateRect(NULL,false);
SendMessage( WM_PAINT );
show_which = 2;//显示本图
byhand = true;
dis_step = -1;
}
else{
dis_step--;
show_which = 0;//显示原图
cnt = 0;
InvalidateRect(NULL,false);
SendMessage( WM_PAINT );
if( dis_step < 0 ){
dis_step = -1;
return;
}
//显示
show_which = 2;
step = 0;
while( step < t_step[dis_step] )
ShowOneStep2();
//SendMessage( WM_PAINT );
}
}
//〉〉〉〉〉〉〉〉
void Cttl_inverterDlg::OnBnClickedButton8()
{
if( 2 != show_which ){
//如果以前不是显示本图
show_which = 0;//显示原图
InvalidateRect(NULL,false);
SendMessage( WM_PAINT );
show_which = 2;//显示本图
dis_step = 0;//
byhand = true;
cnt = 0;
step = 0;
timer_on = true;
timer_ID = SetTimer(1,10,NULL);
}
else{
dis_step++;
if( dis_step > 5 ){
dis_step = 5;
return;
}
byhand = true;
if( dis_step < 1 ){
cnt = 0;
step = 0;
}
timer_on = true;
timer_ID = SetTimer(1,10,NULL);
}
}
void Cttl_inverterDlg::OnBnClickedButton9()
{
if( timer_on )
KillTimer(timer_ID);
show_which = 0;//显示原图
byhand = false;//自动显示一气合成
InvalidateRect(NULL,false);
SendMessage( WM_PAINT );
cnt = 0;
show_which = 3;//概念图
step = 0;
timer_on = true;
timer_ID = SetTimer(1,10,NULL);
}
void Cttl_inverterDlg::OnBnClickedButton10()
{
if( timer_on )
KillTimer(timer_ID);
show_which = 0;//显示原图
byhand = false;//自动显示一气合成
InvalidateRect(NULL,false);
SendMessage( WM_PAINT );
cnt = 0;
show_which = 4;//概念图
step = 0;
timer_on = true;
timer_ID = SetTimer(1,10,NULL);
}
void Cttl_inverterDlg::ShowOneStep4(void)
{
int temp;
static int times = 0;
CRect block[] = { //输入信号
CRect(434,51,236,26),//1
CRect( 91,49,27,19),CRect( 126,17,40,24),//2
CRect( 434,103,180,20),//3
CRect(248,5,59,298)//4
};
//动态显示方向:上0下1左2右3,整体4,整体闪烁5(闪1次)
int dir[] = {
5,//1--1
5,5,//5,5,//2--4
5,//3--5
5//5,5,5//4--8
};
int cnt_total[] = {
5,//1
5,5,//2
5,//3
5,5,5//4
};
CRect rect;
float zoom = 580./679;
if( dir[step] != 5 ) times = 0;
switch( dir[step] ){
case 0: break;
case 1:
//向下
rect.top = block[step].top*zoom;
rect.bottom = rect.top + (block[step].bottom*cnt/cnt_total[step])*zoom;
rect.left = block[step].left*zoom;
rect.right = rect.left + block[step].right*zoom;
InvalidateRect( &rect,false );
cnt++;
if( rect.bottom > (block[step].top + block[step].bottom)*zoom ){
step ++;
cnt = 0;
}
break;
case 2:
//向左
rect.right = ( block[step].left + block[step].right )*zoom;
rect.top = block[step].top*zoom;
rect.left = rect.right - (block[step].right*cnt/cnt_total[step])*zoom;
rect.bottom = rect.top + block[step].bottom*zoom;
InvalidateRect( &rect,false );
cnt++;
if( rect.left < block[step].left*zoom ){
step++;
cnt = 0;
}
break;
case 3:
//右3
rect.left = block[step].left/2;
rect.right = rect.left + (block[step].right*cnt/cnt_total[step])/2;
rect.top = block[step].top/2;
rect.bottom = rect.top + block[step].bottom/2;
InvalidateRect( &rect,false );
cnt++;
if( rect.right > (block[step].left + block[step].right)/2 ){
step++;
cnt = 0;
}
break;
case 4:
rect.left = block[step].left*zoom;
rect.right = rect.left + block[step].right*zoom;
rect.top = block[step].top*zoom;
rect.bottom = rect.top + block[step].bottom*zoom;
InvalidateRect( &rect,false );
cnt++;
if( byhand ){
step++;
cnt = 0;
}
else{
if( cnt > cnt_total[step] ){
step++;
cnt = 0;
}
}
case 5:
rect.left = block[step].left*zoom;
rect.right = rect.left + block[step].right*zoom;
rect.top = block[step].top*zoom;
rect.bottom = rect.top + block[step].bottom*zoom;
InvalidateRect( &rect,false );
if( times == 1 ){
temp = show_which;
show_which = 0;
SendMessage( WM_PAINT );
show_which = temp;
}
cnt++;
if( byhand ){
if( times > 2 ){
step++;
cnt = 0;
}
}
else{
if( cnt > cnt_total[step] ){
cnt = 0;
times++;
if( times > 2 ){
times = 0;
step++;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -