gpt4 book ai didi

c# - Win32 不存在 - 我如何声明或引用它?

转载 作者:行者123 更新时间:2023-11-30 19:34:22 24 4
gpt4 key购买 nike

我正在尝试使用我发现的使用 Win32 的代码。但是,我收到此错误:

The Name 'Win32' does not exist in the current context.

我错过了什么?你如何调用/声明 Win32?

public class TransparentTextBox : TextBox
{
PictureBox pictureBox = new PictureBox();
public TransparentTextBox()
{
pictureBox.Dock = DockStyle.Fill;
this.Controls.Add(pictureBox);
}
protected override void WndProc(ref Message m)
{

base.WndProc(ref m);
switch (m.Msg)
{
case Win32.WM_PAINT:

Bitmap bmpCaptured =
new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);
Bitmap bmpResult =
new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);
Rectangle r =
new Rectangle(0, 0, this.ClientRectangle.Width,
this.ClientRectangle.Height);

CaptureWindow(this, ref bmpCaptured);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.BackColor = Color.Transparent;

ImageAttributes imgAttrib = new ImageAttributes();

ColorMap[] colorMap = new ColorMap[1];

colorMap[0] = new ColorMap();

colorMap[0].OldColor = Color.White;

colorMap[0].NewColor = Color.Transparent;

imgAttrib.SetRemapTable(colorMap);

Graphics g = Graphics.FromImage(bmpResult);

g.DrawImage(bmpCaptured, r, 0, 0, this.ClientRectangle.Width,
this.ClientRectangle.Height, GraphicsUnit.Pixel, imgAttrib);

g.Dispose();

pictureBox.Image = (Image)bmpResult.Clone();
break;


case Win32.WM_HSCROLL:

case Win32.WM_VSCROLL:

this.Invalidate(); // repaint

// if you use scrolling then add these two case statements


break;
}
}

最佳答案

.NET 框架中没有定义这些。编写此代码的人将它们定义在另一个类中。它们来自 Win32 API,这就是它们被命名为 Win32 的原因。您需要搜索每个定义并找出它们应该是什么。

我可以告诉你,Win32.WH* 是窗口消息,它们只是整数值。

编辑:pinvoke.net有完整列表 window messages .

关于c# - Win32 不存在 - 我如何声明或引用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1695247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com