當前位置:編程學習大全網 - 源碼下載 - 取某個坐標的c#背景顏色。

取某個坐標的c#背景顏色。

VS2005 Winform

動態獲取當前屏幕中光標位置的顏色集合。

使用系統;

使用系統。繪圖;

使用系統。收藏;

使用系統。組件模型;

使用系統。Windows . Forms

使用系統。數據;

使用系統。繪圖。成像;

使用系統。Runtime . InteropServices

命名空間LiBo。顏色選擇器

{

公共類Form1 : System。窗口.窗體.窗體

{

//桌面工作區的大小

工作區大小;

//窗體的初始位置以及左下角和右下角的位置。

點formLoc,ptLeftBottom,ptRightBottom

私人系統。Windows . Forms.Label lblColor

私人系統。Windows . Forms.TextBox txtArgb

私人系統。Windows . Forms.Timer tmr

私人系統。Windows.Forms.ToolTip提示;

私人系統。ComponentModel.IContainer組件;

[ DllImport ( "gdi32.dll" ) ]

私有靜態外部bool BitBlt(

IntPtr hdcDest,//目標設備的句柄。

Int nXDest,//目標對象左上角的x坐標。

Int nYDest,//目標對象左上角的x坐標。

Int nWidth,//目標對象矩形的寬度。

Int nHeight,//目標對象矩形的長度

IntPtr hdcSrc,//源設備的句柄。

Int nXSrc,//源對象左上角的x坐標。

Int nYSrc,//源對象左上角的x坐標。

int dwRop //光柵的工作值

);

[ DllImport ( "gdi32.dll" ) ]

私有靜態外部IntPtr CreateDC(

字符串lpszDriver,//驅動程序名稱

字符串lpszDevice,//設備名稱

字符串lpszOutput,//沒用,可以設置位“NULL”。

IntPtr lpInitData //任意打印機數據

);

私有void Form1_DoubleClick(對象發送方,EventArgs e)

{

formLoc = this。位置;

這個。Location = ptRightBottom

這個。TopMost = true

tmr。Enabled = true

}

私有void tmr_Tick(對象發送方,EventArgs e)

{

//創建監視器的DC。

IntPtr HDL DISPLAY = CreateDC(" DISPLAY ",null,null,IntPtr。零);

//從指定設備的句柄創建新的Graphics對象。

圖形gfxDisplay =圖形。from hdc(HDL display);

//創建只有壹個像素大小的位圖對象。

Bitmap bmp =新位圖(1,1,gfx display);

//從指定的圖像對象創建新的圖形對象。

圖形gfxBmp =圖形。from image(BMP);

//獲取屏幕的句柄

IntPtr hdlScreen = gfxDisplay。get hdc();

//獲取位圖的句柄

IntPtr hdlBmp = gfxBmp。get hdc();

//將當前屏幕中鼠標指針所在的像素復制到位圖中。

BitBlt(hdlBmp,0,0,1,1,hdlScreen,MousePosition。x,鼠標位置。y,13369376);

//釋放屏幕句柄

gfxDisplayrelease hdc(HDL screen);

//釋放位圖句柄

gfxBmp。release hdc(HDL BMP);

lblColor。BackColor = bmp。GetPixel(0,0);//獲取像素的顏色

txtArgb。Text = "0x" + lblColor。BackColor.ToArgb()。ToString("x ")。ToUpper();

gfxDisplaydispose();

gfxBmp。dispose();

bmp。dispose();//釋放bmp使用的資源。

}

private void txtArgb_KeyPress(對象發送方,KeyPressEventArgs e)

{

//當按ESC鍵時,確定所選顏色的ARGB值。

//註意:只有當窗體處於活動狀態時才有效。

if (e.KeyChar == (char)Keys。逃)

{

tmr。Enabled = false

這個。Location = formLoc

這個。TopMost = false

txtArgb。select all();

}

}

私有void Form1_MouseEnter(對象發送方,EventArgs e)

{

如果(這個。location = = ptleftbottom)//表單在左下角。

{

這個。Location = ptRightBottom

}

else if(this . location = = ptrightbottom)//表單在右下角。

{

這個。Location = ptLeftBottom

}

}

}

}

  • 上一篇:高端鎖源代碼
  • 下一篇:ICMP協議的工作原理是什麽?ICMP協議的作用是什麽?
  • copyright 2024編程學習大全網