Raohz520 发表于 2021-10-13 15:58

大佬们帮我看看哪有错

这注册窗口类的返回值一直是零啊都抄网上的了还是0,大佬们帮我看看啊public partial class Form1 : Form
    {
      
      static extern bool UpdateWindow(IntPtr hWnd);

      
      
      static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
      
      public static extern IntPtr CreateWindowEx(
         int dwExStyle,
         string lpClassName,
         string lpWindowName,
         int dwStyle,
         int x,
         int y,
         int nWidth,
         int nHeight,
         IntPtr hWndParent,
         IntPtr hMenu,
         IntPtr hInstance,
         IntPtr lpParam);
      
      static extern System.UInt16 RegisterClassW(
             ref WNDCLASSEX lpWndClass
      );
      struct WNDCLASSEX
      {
            
            public int cbSize;
            
            public int style;
            public IntPtr lpfnWndProc; // not WndProc
            public int cbClsExtra;
            public int cbWndExtra;
            public IntPtr hInstance;
            public IntPtr hIcon;
            public IntPtr hCursor;
            public IntPtr hbrBackground;
            public string lpszMenuName;
            public string lpszClassName;
            public IntPtr hIconSm;
      }
      
      static extern IntPtr DefWindowProc(IntPtr hWnd, uint uMsg, IntPtr wParam, IntPtr lParam);

      public Form1()
      {
            InitializeComponent();
      }
      private void Form1_Load(object sender, EventArgs e)
      {

      }


      private void button1_Click_1(object sender, EventArgs e)
      {
            WNDCLASSEX wind_class = new WNDCLASSEX();
            wind_class.cbSize = Marshal.SizeOf(typeof(WNDCLASSEX));
            wind_class.style = 0x00020000;
            wind_class.hbrBackground = (IntPtr)5;
            wind_class.cbClsExtra = 0;
            wind_class.cbWndExtra = 0;
            wind_class.hInstance = Marshal.GetHINSTANCE(GetType().Module);
            wind_class.hIcon = this.Icon.Handle;
            wind_class.hCursor = IntPtr.Zero;
            wind_class.lpszMenuName = string.Empty;
            wind_class.lpszClassName = "MyClass";
            wind_class.lpfnWndProc = DefWindowProc(IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero);
            Text = RegisterClassW(ref wind_class).ToString();
            IntPtr lolo = CreateWindowEx(0, "MyClass", "MyClass", 0, 0, 0, 30, 40, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
            ShowWindow(lolo, 1);
            UpdateWindow(lolo);
      }
    }

页: [1]
查看完整版本: 大佬们帮我看看哪有错