diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs index e204270..04abb21 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs @@ -22,6 +22,9 @@ namespace JoyD.Windows.CS // 绘制模式标志 private bool _isDrawingMode = false; + // 温差图绘制模式标志 + private bool _isTempDiffDrawingMode = false; + // 矩形绘制相关变量 private Point _startPoint; private Rectangle _currentRectangle = Rectangle.Empty; @@ -78,8 +81,14 @@ namespace JoyD.Windows.CS /// private void PicBoxTemp_MouseDown(object sender, MouseEventArgs e) { + // 检查是否处于温差图绘制状态且右击鼠标 + if (_isTempDiffDrawingMode && e.Button == MouseButtons.Right) + { + // 退出温差图绘制状态,返回到就绪状态 + ExitTempDiffDrawingMode(); + } // 检查是否处于绘制状态且右击鼠标 - if (_isDrawingMode && e.Button == MouseButtons.Right) + else if (_isDrawingMode && e.Button == MouseButtons.Right) { // 退出绘制状态 _isDrawingMode = false; @@ -140,7 +149,7 @@ namespace JoyD.Windows.CS /// /// 根据状态设置按钮可见性 /// - /// 状态类型:0-初始/就绪状态,1-选中区域状态,2-绘制状态 + /// 状态类型:0-初始/就绪状态,1-选中区域状态,2-绘制状态,3-温差图绘制状态 private void UpdateButtonsVisibility(int state) { try @@ -165,6 +174,12 @@ namespace JoyD.Windows.CS btnDeleteRegion.Visible = false; // 隐藏删除区域按钮 btnDrawTempDiff.Visible = false; // 隐藏温差图按钮 break; + case 3: // 温差图绘制状态 + btnDrawTempDiff.Visible = true; // 显示温差图按钮 + btnDrawRegion.Visible = false; // 隐藏绘制区域按钮 + btnSelectColor.Visible = false; // 隐藏颜色选择按钮 + btnDeleteRegion.Visible = false; // 隐藏删除区域按钮 + break; } } catch (Exception ex) @@ -178,8 +193,53 @@ namespace JoyD.Windows.CS /// private void BtnDrawTempDiff_Click(object sender, EventArgs e) { - // 温差图绘制功能实现 - // TODO: 实现温差图绘制逻辑 + try + { + // 设置温差图绘制模式标志 + _isTempDiffDrawingMode = !_isTempDiffDrawingMode; + btnDrawTempDiff.Checked = _isTempDiffDrawingMode; + + if (_isTempDiffDrawingMode) + { + // 进入温差图绘制状态 + picBoxTemp.Cursor = Cursors.Cross; + btnDrawTempDiff.ToolTipText = "温差图绘制模式已启用,点击图片区域进行绘制(点击关闭)"; + + // 调用按钮可见性更新方法设置为温差图绘制状态 + UpdateButtonsVisibility(3); // 3表示温差图绘制状态 + } + else + { + // 退出温差图绘制状态,返回到就绪状态 + ExitTempDiffDrawingMode(); + } + } + catch (Exception ex) + { + Console.WriteLine("温差图绘制模式切换失败: " + ex.Message); + ExitTempDiffDrawingMode(); + } + } + + /// + /// 退出温差图绘制模式 + /// + private void ExitTempDiffDrawingMode() + { + _isTempDiffDrawingMode = false; + btnDrawTempDiff.Checked = false; + + // 重置鼠标光标 + picBoxTemp.Cursor = Cursors.Default; + + // 更新按钮提示文本 + btnDrawTempDiff.ToolTipText = "绘制温差图"; + + // 按就绪状态设置按钮可见性 + UpdateButtonsVisibility(0); // 0表示初始状态/就绪状态 + + // 刷新绘制 + picBoxTemp.Invalidate(); } ///