最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

基于GDI+技術(shù)開發(fā)工業(yè)儀表盤控件

2020-06-12 10:21 作者:新閣教育  | 我要投稿


寫在前面:

上次給大家看了一個上位機界面之后,很多人表示對那個儀表盤的開發(fā)感興趣,今天就跟大家分享一下整個的開發(fā)過程,由于整個儀表盤開發(fā)的過程還是有些復雜的,無法將所有的代碼都一一展示,所以重點跟大家分享一下開發(fā)的思路,畢竟每個人都會有自己的想法和風格。

01.效果圖展示

先給大家看看實際項目中的應用效果圖:

圖表 1 項目效果圖


對于這種儀表盤控件的開發(fā),只能通過GDI+來實現(xiàn)。實際使用中,我們可以根據(jù)需要設(shè)置不同的樣式,包括顏色、角度、量程等等,下面給大家展示一下:

02.控件開發(fā)過程

GDI+開發(fā)控件其實并不是特別難,但是會比較復雜,涉及的東西比較多,需要有一定的空間想象能力,甚至是數(shù)學幾何基礎(chǔ)。

任何一個復雜的GDI+控件,里面無非就是字段(Field)、屬性(Property)、方法(Method)、委托(Delegate)以及事件(Event)。其實屬性是靈魂,GDI+設(shè)計及繪制就是圍繞屬性來進行開發(fā)的。

我們拿到這樣一張效果圖之后,第一步要做的事情是,確定需要設(shè)計哪些屬性?

A:儀表盤部分:

(1)????? GaugeColor:設(shè)置或獲取儀表盤的邊框顏色

(2)??????PointerColor:設(shè)置或獲取儀表盤的指針顏色

(3)??????RangeMin:設(shè)置或獲取量程的最小值

(4)??????RangeMax:設(shè)置或獲取量程的最大值

(5)??????CurrentValue:設(shè)置或獲取當前數(shù)值

(6)??????RangeAlarmMin:設(shè)置或獲取量程報警最小值

(7)??????RangeAlarmMax:設(shè)置或獲取量程報警最大值

(8)?????? TopGap:設(shè)置或獲取整個控件的上下間隙

(9)?????? LeftGap:設(shè)置或獲取整個控件的左右間隙

(10)?? PointerRadius:設(shè)置或獲取中心原點的半徑

(11)?? AlarmColor:設(shè)置或獲取報警線的顏色

B:刻度值部分

(1)??????BigScaleCount:設(shè)置或獲取大刻度數(shù)量

(2)??????SmallScaleCount:設(shè)置或獲取小刻度數(shù)量

(3)??????IsAllowFullCircle:設(shè)置或獲取是否允許整圓顯示

(4)??????ScaleWidth:設(shè)置或獲取刻度值的最大寬度

(5)??????ScaleHeigth:設(shè)置或獲取刻度值的最大高度

C:文本顯示部分

(1)??????TextColor:設(shè)置或獲取文本顏色

(2)??????UnitText:設(shè)置或獲取顯示單位

(3)??????IsTextVisiable:設(shè)置或獲取文本內(nèi)容是否顯示

(4)??????TextGap:設(shè)置或獲取文本顯示位置與刻度的間距

通過一系列的分析之后,確定了設(shè)計以上20種屬性,確定屬性之后,即可通過重寫OnPaint事件進行重繪,重繪步驟又是怎樣的呢?

(1)??????確定整體核心三要素(中心點、偏移角度、圓環(huán)半徑)

(2)?????? 繪制大刻度

(3)?????? 繪制小刻度

(4)?????? 繪制刻度值

(5)?????? 繪制文本

(6)?????? 繪制實時值指針

(7)?????? 繪制報警框

寫在最后:

本文旨在結(jié)合GDI+的相關(guān)技術(shù)介紹了一個儀表盤控件開發(fā)的整個過程,自定義控件在上位機開發(fā)中應用非常廣泛,除了GDI+繪制控件以外,還有擴展控件和組合控件的應用。對于從事上位機開發(fā)的學員來說,學好GDI+是非常有必要的,可以大大增加你項目的擴展性和可視性。

公眾號:thinger_swj
關(guān)注抖音,分享知識點




基于GDI+技術(shù)開發(fā)工業(yè)儀表盤控件的評論 (共 條)

分享到微博請遵守國家法律
松潘县| 吕梁市| 萨迦县| 金沙县| 辽阳县| 兴宁市| 太仓市| 和林格尔县| 丰宁| 通州市| 仁化县| 建昌县| 山阳县| 那坡县| 蕉岭县| 政和县| 隆化县| 剑河县| 伊春市| 莱西市| 霍林郭勒市| 沙雅县| 玛纳斯县| 平乐县| 林甸县| 潮州市| 湖口县| 石首市| 平谷区| 临沂市| 神木县| 大安市| 霍山县| 多伦县| 新巴尔虎右旗| 滕州市| 临安市| 古交市| 麻栗坡县| 临沂市| 新建县|