一 效果圖
為了實現這個取色器,在網上查了很多關於取色器的資料,起先是通過winform怎麼制作,後來發現大多數資料都調用了windows api,但自己以前從來沒有用過這方面的,又從網上下了windows api 來看,經過多次實踐終於做出了現在這個效果,先感謝下網上那些提供資料的朋友。
效果,如下圖:
二 原理
為了實現整個屏幕取色
1.需要獲取鼠標當前的位置
2.獲取整個窗口的場景
3.獲取指定點的顏色值
4.判斷按鍵狀態來控制開始結束取色
需要實現這些功能,就必需要調用windows api來實現。
在C#中調用windows api的方式如下所示:
[DllImport("user32.dll")]
public static extern uint WindowFromPoint(uint x_point,uint y_point);
三 詳細代碼
關鍵代碼都已經注釋,就不解釋了。界面代碼就不給出了很簡單的。
代碼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace GetColor
{
public partial class colorForm : Form
{
private int redValue = 255;
private int greenValue = 255;
private int blueValue = 255;
public colorForm()
{
InitializeComponent();
InitPanelColor();
}
private bool flag = false;
public struct POINTAPI
{
public uint x;
public uint y;
}
public class WinInfo
{
/// <summary>
///