VC在对话框窗口上添加状态栏

VC在对话框上添加状态栏,没有可视化的控件,要用类来创建。
1、在窗口.h文件中添加成员变量 CStatusCtrl  m_status;
2、在窗口的OnInitDialog函数中添加创建代码:
	 RECT     m_Rect;   
	 GetClientRect(&m_Rect);         //获取对话框的矩形区域
	 m_Rect.top = m_Rect.bottom-20;    //设置状态栏的矩形区域
	 m_Status.Create(WS_CHILD|WS_VISIBLE|CBRS_BOTTOM,m_Rect,this,3);  

	 int nPanel[4]= {100, 300, 300,-1};      //分割尺寸
	 m_Status.SetParts(4, nPanel);  //分割状态栏
	 m_Status.SetText(_T("这是第一个指示器"),0,0); //第一个分栏加入"这是第一个指示器"
	 m_Status.SetText(_T("这是第二个指示器"),1,0); //以下类似

	 //在第三个窗格中加入ID为IDR_MAINFRAME的图标
	 m_Status.SetIcon(3,SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME),FALSE));
	 m_Status.ShowWindow(SW_SHOW);

	 SetTimer(0,1000,NULL);
3、在定时器中改变第一个状态栏panel内容,为当前时间
void CTestDLLDlg::OnTimer(UINT_PTR nIDEvent)
{
	CTime t1 = CTime::GetCurrentTime();
	CString date = t1.Format("%Y-%m-%d %H:%M:%S");
	m_Status.SetText(date,0,0);


	CDialogEx::OnTimer(nIDEvent);
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如何安装mschart#Region "定义变量" Const XOffset As Integer = 50, Yoffset As Integer = 20 Dim WithEvents PicCurve As PictureBox Dim xStep As Single = 5, yStep As Single Dim ValueArray As ArrayList Dim ThresHold() As Single 'HIHI、HI、LO、LOLO Dim Name As String = "参数名" Dim Unit As String = "单位" #End Region #Region "构造函数、析构函数" Public Sub New(ByVal mPictureBox As PictureBox, ByVal mThresHold() As Single, ByVal mName As String) ValueArray = New ArrayList PicCurve = mPictureBox ThresHold = mThresHold mPictureBox.BorderStyle = BorderStyle.None Name = mName End Sub Protected Overrides Sub Finalize() MyBase.Finalize() ValueArray.Clear() End Sub #End Region #Region "添加要绘制的点的信息" Public Sub AddValue(ByVal Value As Single) 'Value = ThresHold(0) * Rnd() + ThresHold(3) '测试代码 ValueArray.Add(Value) Call DrawCurve(GetGraphics(PicCurve)) End Sub Public Sub AddValues(ByVal Values() As Single, ByVal G As Graphics) For i As Integer = 0 To Values.Length - 1 ValueArray.Add(Values(i)) Next Call DrawCurve(G) End Sub #End Region #Region "绘制点之间的连线" Private Sub DrawCurve(ByVal G As Graphics, Optional ByVal mClear As Boolean = True) If ValueArray.Count > 0 Then If mClear Then G.Clear(Color.White) G.SmoothingMode = Drawing2D.SmoothingMode.HighQuality Dim mPoints(ValueArray.Count - 1) As Point, Position As Integer = XOffset For i As Integer = ValueArray.Count - 1 To 0 Step -1 Dim ThisValue As Single = CType(ValueArray(i), Single) 'If Position < PicCurve.Width Then Position += xStep Else Exit For Position += xStep mPoints(i) = New Point(Position, (ThresHold(0) - ThisValue) * yStep + Yoffset) Next G.DrawCurve(Pens.Blue, mPoints) mPoints = Nothing End If End Sub #End Region #Region "绘制坐标系统" Private Sub DrawReferenceFrame(ByVal G As Graphics) Dim mPoint1 As New Point, mPoint2 As New Point '定义绘图画笔 Dim MyPen As New Pen(Color.Black, 3) Dim MyStringFormat As New System.Drawing.StringFormat MyStringFormat.Alignment = StringAlignment.Center Dim mSize As New SizeF MyPen.SetLineCap(Drawing2D.LineCap.NoAnchor, Drawing2D.LineCap.ArrowAnchor, Drawing2D.DashCap.Flat) Dim mFont As Font = New Font(FontFamily.GenericSansSerif, 12.0F, FontStyle.Bold) '绘制Y轴 MyPen.Color = Color.Black mPoint1 = New Point(XOffset, PicCurve.Height) mPoint2 = New Point(XOffset, 0) G.DrawLine(MyPen, mPoint1, mPoint2) '绘制X轴 MyPen.Color = Color.LightGreen mPoint1 = New Point(XOffset, PicCurve.Height / 2) mPoint2 = New Point(PicCurve.Width, PicCurve.Height / 2) G.DrawLine(MyPen, mPoint1, mPoint2) '绘制参数名 MyStringFormat.FormatFlags = StringFormatFlags.DirectionVertical mSize = G.MeasureString(Name, mFont) mPoint1.Offset(-mSize.Height, 0) G.DrawString(Name, mFont, Brushes.Black, mPoint1, MyStringFormat) '绘制参数各门限 MyPen.DashStyle = Drawing2D.DashStyle.Dash : MyPen.Width = 2 MyPen.SetLineCap(Drawing2D.LineCap.NoAnchor, Drawing2D.LineCap.NoAnchor, Drawing2D.DashCap.Round) 'HI If ThresHold(1) <> ThresHold(0) Then MyPen.Color = Color.Yellow mPoint1 = New Point(XOffset, (ThresHold(0) - ThresHold(1)) * yStep + Yoffset) mPoint2 = New Point(PicCurve.Width, (ThresHold(0) - ThresHold(1)) * yStep + Yoffset) G.DrawLine(MyPen, mPoint1, mPoint2) mSize = G.MeasureString(ThresHold(1).ToString, mFont) mPoint1.Offset(-mSize.Width, -mSize.Height / 2) G.DrawString(ThresHold(1).ToString, mFont, Brushes.Yellow, mPoint1) End If 'LO If ThresHold(2) <> ThresHold(3) Then mPoint1 = New Point(XOffset, (ThresHold(0) - ThresHold(2)) * yStep + Yoffset) mPoint2 = New Point(PicCurve.Width, (ThresHold(0) - ThresHold(2)) * yStep + Yoffset) G.DrawLine(MyPen, mPoint1, mPoint2) mSize = G.MeasureString(ThresHold(2).ToString, mFont) mPoint1.Offset(-mSize.Width, -mSize.Height / 2) G.DrawString(ThresHold(2).ToString, mFont, Brushes.Yellow, mPoint1) End If 'HIHI MyPen.Color = Color.Red mPoint1 = New Point(XOffset, Yoffset) mPoint2 = New Point(PicCurve.Width, Yoffset) G.DrawLine(MyPen, mPoint1, mPoint2) mSize = G.MeasureString(ThresHold(0).ToString, mFont) mPoint1.Offset(-mSize.Width, -mSize.Height / 2) G.DrawString(ThresHold(0).ToString, mFont, Brushes.Red, mPoint1) 'LOLO mPoint1 = New Point(XOffset, PicCurve.Height - Yoffset) mPoint2 = New Point(PicCurve.Width, PicCurve.Height - Yoffset) G.DrawLine(MyPen, mPoint1, mPoint2) mSize = G.MeasureString(ThresHold(3).ToString, mFont) mPoint1.Offset(-mSize.Width, -mSize.Height / 2) G.DrawString(ThresHold(3).ToString, mFont, Brushes.Red, mPoint1) MyPen.Dispose() mFont.Dispose() End Sub #End Region #Region "要在其上绘制的控件事件" Private Sub PicCurve_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PicCurve.Paint Call DrawReferenceFrame(e.Graphics) End Sub Private Sub PicCurve_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles PicCurve.Resize On Error Resume Next xStep = 5 yStep = (PicCurve.Height - 2 * Yoffset) / (ThresHold(0) - ThresHold(3)) End Sub #End Region #Region "绘制永久图像" Function GetGraphics(ByRef pic As PictureBox) As Graphics Dim bmp As Bitmap = New Bitmap(pic.Width, pic.Height) pic.Image = bmp Dim g As System.Drawing.Graphics = Graphics.FromImage(bmp) Return g End Function #End Region #Region "保存图形" Public Sub SaveCurve(ByVal FileName As String) Dim bmp As New Bitmap(PicCurve.Width, PicCurve.Height) Dim g As Graphics = Graphics.FromImage(bmp) Call DrawReferenceFrame(g) Call DrawCurve(g, False) bmp.Save(FileName) End Sub #End Region End Class

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值