在狀態列上新增狀態指示燈的探索過程

2021-04-26 00:51:46 字數 752 閱讀 5582

為了了解系統的工作狀態,我們常常需要在一些較為顯眼的地方增加特定的標識。比如,在硬體設計時,我們會利用一些led標識系統的某些工作狀態。

之所以要在狀態列上新增狀態指示燈是因為我的主對話方塊上已經被控制項覆蓋,除了狀態列、選單欄和標題欄之外,沒有其他地方可以更直觀地觀察到系統工作的狀態資訊。

為了在狀態列中模擬硬體系統led指示燈的效果,我做了如下嘗試:

1、直接從cstatusbar類派生新的類,對控制項進行重繪。主要新增了如下**:

void cmystatusbar::drawitem(lpdrawitemstruct lpdrawitemstruct)}}

void cmystatusbar::onpaint()

}void cmystatusbar::setstate(int* pstate)

測試結果是:能夠在狀態列上模擬紅綠指示燈,但是原來狀態列上顯示文字的地方現在不顯示文字了。

void cstatusstatic::onpaint()

}void cstatusstatic::setstate(int* pstate)

測試結果:完美地達到了我的目的。

備註:1、關於cstatuscontrol、cstatusstatic的使用,請參照「特色狀態列」。

2、state[6]在cstatusstatic.h中定義,要記得初始化。

3、在標頭檔案中新增#pragma once可以避免重包含的問題。

4、cstatusstatic中內聯函式的實現最好放在.cpp檔案中。

狀態指示燈的框架

這個led的框架和別的框架都是一樣的,你看一下那個esc的框架就明白了。gpio led.c 有乙個gpio led main 函式,這個函式裡面接收 start 命令,分配結構體,然後把gpio led start函式放到工作佇列中,在gpio led start函式中,呼叫了乙個open函式開啟...

winform中的狀態列,以及在狀態欄目上顯示時間

1 在winform上新增狀態列,並且在狀態欄目上多新增幾個label。step1 拖乙個statusstrip到winform上,名字預設為statusstrip1。找到statusstrip1的items屬性,雙擊開啟新增3個statuslabel。名字預設分別為toolstripstatusl...

VC 中狀態列上新增座標顯示功能

本程式是基於 vc6.0mfc sdi 寫。cmainframe 中 1.新增窗格 先在 string table 裡面先定義 id indicator point 然後將其到狀態列各窗格標誌的陣列 indicators 中 static uint indicators 2.在oncreate 中,...