在stackoverflow社区的帮助下,我设计了一个为屏幕着色的应用程序,让它看起来像是戴着不同颜色的眼镜。
我还希望添加功能而不是整个屏幕着色,只为文档的背景着色,就像这个程序一样:
http://www.thomson-software-solutions.com/html/screen_tinter.html
任何人都有任何线索如何在vb.net中做到这一点?
答案 0 :(得分:2)
这是一个非常简单的技巧,它只是取代了用于窗口背景的系统颜色。你可以通过P /调用SetSysColor()API函数来改变它。这是一个演示该技术的示例Windows窗体应用程序。启动一个新的WF应用程序并在表单上放置一个按钮。然后粘贴此代码:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
int oldcolor;
public Form1() {
InitializeComponent();
oldcolor = GetSysColor(COLOR_WINDOW);
this.FormClosed += new FormClosedEventHandler(Form1_FormClosed);
this.button1.Click += new EventHandler(button1_Click);
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e) {
int element = COLOR_WINDOW;
SetSysColors(1, ref element, ref oldcolor);
}
private int Color2COLORREF(Color color) {
return color.R | (color.G << 8) | (color.B << 0x10);
}
private void button1_Click(object sender, EventArgs e) {
int element = COLOR_WINDOW;
int colorref = Color2COLORREF(Color.NavajoWhite);
SetSysColors(1, ref element, ref colorref);
}
private const int COLOR_WINDOW = 5;
[DllImport("user32.dll")]
private static extern bool SetSysColors(int one, ref int element, ref int color);
[DllImport("user32.dll")]
private static extern int GetSysColor(int element);
}
}
答案 1 :(得分:1)
Offtopic,但您可以将Word更改为默认为“White on Blue”。蓝色背景,白色文本。