999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VC的船舶監控界面提示信息半透明化實現

2014-08-17 01:45:54張曉慧徐向文姚恒傳
關鍵詞:環境設備

張曉慧, 徐向文, 姚恒傳

(1.上海船舶運輸科學研究所 艦船自動化分所,上海 200135; 2.蘇州杜科設備工程有限公司,江蘇 昆山 215300)

0 引 言

隨著計算機技術的發展,監控系統對界面顯示的要求也從簡單的文字顯示轉化為以圖形界面為主,顯示風格從簡單的WINDOWS灰白界面向多種顯示基色發展,對顯示內容也提出了更高的要求。由于通用WINDOWS提示在顯示時會擋住一部分正常顯示界面,這樣就有用戶提出了在提示窗進行半透明顯示的要求。

1 GDI+圖形編程技術

圖形設備接口+(GraphicsDeviceInterfacePlus,GDI+)是微軟的.NET Framework類庫的組成部分,用于圖形編程。在微軟以前的開發工具中,使用GDI進行圖形編程,相當復雜,而GDI+是GDI的包裝器,簡化了圖形程序設計任務。GDI+與GDI的不同之處在于不僅提供了很多新功能,如像素消除鋸齒技術,漸變畫筆,變形和矩陣對象,獨立的路徑對象、基數樣條、對多圖像格式的支持和Alpha混合等;更重要的是它改變了編程模型,GDI是基于句柄的而GDI+是基于對象模型的。使用GDI+,只需創建1個Graphics對象,然后以熟悉的面向對象樣式調用其方法,而沒有必要去考慮句柄和設備環境(DeviceContext)的概念。設備環境位于GDI的核心,Graphics對象也位于GDI+核心,其作用相似, 但在使用設備環境的基于句柄的編程模式和使用Graphics對象的基于面向對象的編程模型之間,存在一些基本的差異。Graphics對象(和設備環境一樣)與屏幕上特定的窗口關聯,并具有指定如何繪制項目的屬性(如SmoothingMode),但是,Graphics對象不受鋼筆、畫筆、路徑、圖像或字體的約束,這與設備環境不同,例如,使用設備環境繪制線條之前,必須先調用SelectObject以使鋼筆對象和設備環境關聯,將鋼筆選入設備環境中。在設備環境中繪制的所有線條均使用該鋼筆(只有一支畫筆是可以使用的),直到選擇另一支不同的鋼筆為止。而在GDI+中,將Pen對象作為參數傳遞給Graphics類的DrawLine方法,可以在一系列DrawLine調用的每個調用中使用不同的Pen對象,而不必使給定的Pen對象和Graphics對象關聯。也就是說,在GDI+中,可以同時使用多個畫筆進行不同的繪圖操作[1]。

2 步驟及代碼

要實現透明顯示,可在VC(Microsoft Visual C++)開發環境下使用GDI+技術完成。

2.1 在VC6.0版本下使用

由于VC6.0 本身并不帶有GDI+函數庫,需要下載GDI+函數庫,在工程目錄下建立GdiFiles目錄,將下載的GDI+文件拷貝到該目錄下,并使工程包含GdiFilesGdiPlus.lib庫文件,包含gdiplus.h頭文件,并為GDI+申請using namespace Gdiplus。這樣就能在VC6.0中使用GDI+。

在VC2010中由于開發工具已包含GDI+,因此可直接使用。

2.2 開發步驟

在使用GDI+庫前必須先向系統注冊,使用語句為:

Gdiplus::GdiplusStartupInput gdiplusStartupInput

然后初始化GDI+相關句柄,使用語句為:

Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL)

在程序退出前必須注銷GDI+,使用語句為:

Gdiplus::GdiplusShutdown(m_gdiplusToken)

使用GDI+庫,建立與顯示關聯的graphics指針

Graphics graphics(pDC->m_hDC).

設置半透明顯示的底色

COLORREF col = RGB(250,250,250)

設置半透明顯示的文字色

COLORREF coltxt = RGB(0,0,0)

設置半透明度

int fillair=150;(透明度范圍在0-255,值越小透明度越高)

建立半透明畫刷

SolidBrush brush(Color(Color::MakeARGB(BYTE(fillair), GetRValue(col), GetGValue(col), GetBValue(col)))) 創建筆刷,第一項是透明度,后三項是RGB值

建立半透明區域 Rect rcFill(25,25,200,100),其參數為left,top,Width,Height

顯示半透明區域 graphics.FillRectangle(&brush, rcFill)

建立半透明畫刷

SolidBrush brush1(Color(Color::MakeARGB(BYTE(fillair), GetRValue(coltxt), GetGValue(coltxt), GetBValue(coltxt)))) 創建一個筆刷,第一項是透明度,后三項是RGB值

選擇顯示文字字體

FontFamily fontFamily(L"Latha")

設置字體大小和顯示風格

Font font(&fontFamily,0.15,FontStyleRegular,UnitInch)

設置顯示位置

PointF pointF(25,25)

顯示提示信息

graphics.DrawString(L"測點信息:",-1,&font,pointF,&brush1)

pointF.Y=pointF.Y+20;

graphics.DrawString(L"1#發電機曲軸箱進口滑油溫度",-1,&font,pointF,&brush1);

pointF.Y=pointF.Y+20;

graphics.DrawString(L"安裝部位:",-1,&font,pointF,&brush1);

pointF.Y=pointF.Y+20;

graphics.DrawString(L"1#電站1#發電機曲軸",-1,&font,pointF,&brush1);

4 效果檢驗

按照上述步驟進行編程,執行效果見圖1。

圖1

5 結 語

完成以上步驟,就能實現提示窗體的半透明顯示,并且顯示的透明度還可自由調節。但在實際應用中還會遇到以下問題:由于半透明顯示時GDI系統將會取得該區域屏幕顯存,如果用戶定時對屏幕進行畫屏顯示操作,由于獲取的是上次已顯示的半透明顯存,疊加后會產生顯示透明度逐漸加深的情況。解決這一問題的方法是使用顯示雙緩沖[3]的方法。雙緩沖就是除了在屏幕上有圖形進行顯示以外,在內存中也有圖形在繪制。可以把要顯示的圖形先在內存中繪制好,然后再一次性的將內存中的圖形按照一個點一個點地覆蓋到屏幕上。這樣在內存中繪圖時,由于內存中的圖形未進行半透明顯示,所以可以避免疊加效果。

參考文獻:

[1] 李順亮,王新輝,鐘碧良.應用GDI+和C#開發船舶壓載水監控系統控件[J].廣州航海高等專科學校學報,2012,20(1):4-6.

[2] 於文雪,李松毅,羅立民.基于Windows GDI的圖形圖像處理探討[J].計算機工程,2003,29(2):270-272.

[3] 韓麗娜,石昊蘇.使用雙緩存來解決GDI下的閃爍問題[J].計算機工程與設計,2006,27(17):3257-3260.

猜你喜歡
環境設備
諧響應分析在設備減振中的應用
長期鍛煉創造體內抑癌環境
一種用于自主學習的虛擬仿真環境
孕期遠離容易致畸的環境
不能改變環境,那就改變心境
基于VB6.0+Access2010開發的設備管理信息系統
環境
孕期遠離容易致畸的環境
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 久草性视频| 亚洲成人福利网站| 亚洲国产欧洲精品路线久久| 影音先锋丝袜制服| 亚洲一级毛片在线播放| 国产成人啪视频一区二区三区| 国产大片喷水在线在线视频| 午夜少妇精品视频小电影| 国产精品亚洲天堂| 四虎永久免费地址| av一区二区人妻无码| 国产精品亚洲精品爽爽| 91精品国产自产91精品资源| 国产剧情国内精品原创| 久草视频中文| 曰韩免费无码AV一区二区| 国产区在线看| 日韩av手机在线| 香蕉久人久人青草青草| 久一在线视频| 九色在线观看视频| 无码精品国产dvd在线观看9久 | 99视频在线观看免费| 久久婷婷综合色一区二区| 一本一道波多野结衣一区二区 | 亚洲一级毛片在线观| 日韩欧美中文字幕在线精品| 国产精品99久久久久久董美香| 久久国产亚洲欧美日韩精品| 91无码国产视频| 亚洲狠狠婷婷综合久久久久| 又爽又黄又无遮挡网站| 国产人成网线在线播放va| 国产精品三级专区| 99热这里只有精品免费| 国产农村精品一级毛片视频| a国产精品| 伊在人亞洲香蕉精品區| 久久中文字幕不卡一二区| 国产9191精品免费观看| 国产又粗又爽视频| 丁香婷婷激情网| 国产精品开放后亚洲| 亚洲最大在线观看| 午夜综合网| 国产性爱网站| 国产综合网站| 九九九国产| 亚洲欧洲日韩综合| 亚洲伦理一区二区| 国产精品不卡片视频免费观看| 婷婷亚洲视频| 久久精品国产国语对白| 亚洲欧洲日韩久久狠狠爱| 亚洲综合天堂网| 亚洲热线99精品视频| 亚洲色中色| 久久久亚洲色| 国产精品大白天新婚身材| 在线观看网站国产| 另类欧美日韩| 在线观看91香蕉国产免费| www.狠狠| 无码网站免费观看| 另类重口100页在线播放| 国产欧美日韩va| 一级福利视频| 亚洲乱码视频| 亚洲欧洲日韩综合色天使| 亚洲日韩在线满18点击进入| 国产国产人成免费视频77777| 97se亚洲综合在线天天| 72种姿势欧美久久久久大黄蕉| 久久久久夜色精品波多野结衣| 国产地址二永久伊甸园| 素人激情视频福利| 精品黑人一区二区三区| 亚洲精品自在线拍| 在线观看欧美国产| 国内精自线i品一区202| 欧美另类视频一区二区三区| 国产精品久久自在自线观看|