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

Maz*_*516 2 c# winapi

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

名称'Win32'在当前上下文中不存在.

我错过了什么?你怎么称呼/声明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;
        }
    }
Run Code Online (Sandbox Code Playgroud)

shf*_*301 5

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

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

编辑: pinvoke.net有一个完整的窗口消息列表.