VS2010 中C 和C 顏色轉化

2021-06-07 19:55:00 字數 1027 閱讀 5078

在.net 中,用c++開發時候用到了colorref 而在c# 中沒有這個只要color,所以需要進行轉化

colorref型別顏色的值colorref cr=rgb(123,200,12); 其中的r、g、b三個分量的排列順序是bgr。

.net中通過資料型別color表示顏色,該類有乙個函式fromargb(int,int,int),可以通過輸入rgb三個值得到乙個color型別的顏色。同時也有乙個toargb()函式,得到乙個32位的整數值.

32 位 argb 值的位元組順序為 aarrggbb。由 aa 表示的最高有效位元組 (msb) 是 alpha 分量值。分別由 rr、gg 和 bb 表示的第

二、第三和第四個位元組分別為紅色、綠色和藍色顏色分量

1、從color到colorref

int ncolor = crcolor.toargb();

int blue = ncolor & 255;

int green = ncolor >> 8 & 255;

int red = ncolor >> 16 & 255;

//注意colorref中顏色的排列是 bgr,而通過color.toargb()得到的數值中顏色排列是aarrggbb

int ncolorref = blue << 16 | green << 8 | red;

還要在進行無符號數的強制型別轉化。

2、從colorref到color(注意colorref中顏色的排列是bgr,紅色分量在最後面)

int red=ncolorref & 255;

int green= ncolorref >> 8 & 255;

int blue= ncolor ref>> 16 & 255;

color crcolor=color.fromargb(red,green,blue);

或者直接通過下面的**:

color.fromargb(ncolorref & 255, ncolorref >> 8 & 255, ncolor ref>> 16 & 255);

詳細可以看

VS2010遠端除錯C 程式

客戶的計算機執行程式出現異常,由於辦公場所不在一起,無法直接在客戶的機器上除錯。此時希望可以直接在開發人員的計算機 本地機器 上遠端除錯客戶機上的軟體。1 客戶機器配置 開啟遠端服務 設定本地安全策略 關閉防火牆 本地新建資料夾bin,共享資料夾 開啟本地機器共享的remote debugger資料...

C 程式在VS2010中複製窗體

1 乙個窗體有三個檔案,全部拷貝到新的專案檔案目錄中 2 在新專案中新增現有項,然後把這個窗體相關的三個檔案都新增到新的專案中 4 開啟窗體 修改public partial class old form 中的old為新窗體類名new.重要 窗體初始化模組中的old也相應的修改為new public...

C 4 0和VS2010新特性

dynamic初探 以前因為某些特殊原因,需要動態的呼叫外部類 假設這個類是實現了某個帶有引數的介面函式的 通常我們只能用反 示例 如下 assembly asm assembly.loadfile xx asm.createinstance myassembly.classname gettype...