none
哪们好心人给介绍下SendMessage的WM_SETTEXT? RRS feed

  • 问题

  • 在一段C#代码中要用到sendmessage函数,它的WM_SETTEXT参数有什么意义,是个常数还是什么,常数的话,它的值应该设为多少。

    搜到了一些sendmessage的介绍,里有也有提到wm_settext参数,但是却没说这个要怎么用,是要在使用此参数前先赋值吗?

    C#新手,真心求教

    2011年6月30日 13:17

答案

  • private const int WM_SETTEXT = 0x000C;

    是一个常量

    '这里是用SendMessage方法在写字板中输入内容的代码片段:
    private const int WM_SETTEXT = 0x000C;
    [DllImport("user32.dll")]
    private static extern IntPtr FindWindow(
      string lpClassName,
      string lpWindowName);
    
    [DllImport("User32.dll")]
    private static extern IntPtr FindWindowEx(
      IntPtr hwndParent,
      IntPtr hwndChildAfter,
      string lpszClass,
    string lpszWindows);
    [DllImport("User32.dll")]
    private static extern Int32 SendMessage(
      IntPtr hWnd,        
      int Msg,        
      IntPtr wParam,       
    StringBuilder lParam);
    private void button1_Click(object sender, EventArgs e)
    {
      // 返回写字板主窗口句柄
      IntPtr hWnd = FindWindow("Notepad", "Untitled - Notepad");
      if (!hWnd.Equals(IntPtr.Zero))
      {
        //返回写字板编辑窗口句柄
        IntPtr edithWnd = FindWindowEx(hWnd, IntPtr.Zero, "Edit", null);
        if (!edithWnd.Equals(IntPtr.Zero))
          // 发送WM_SETTEXT 消息: "Hello World!"
          SendMessage(edithWnd, WM_SETTEXT, IntPtr.Zero, new StringBuilder("Hello World!"));
      }
    }
    
    
    


     


    算神的博客
    2011年7月1日 5:43

全部回复

  • private const int WM_SETTEXT = 0x000C;

    是一个常量

    '这里是用SendMessage方法在写字板中输入内容的代码片段:
    private const int WM_SETTEXT = 0x000C;
    [DllImport("user32.dll")]
    private static extern IntPtr FindWindow(
      string lpClassName,
      string lpWindowName);
    
    [DllImport("User32.dll")]
    private static extern IntPtr FindWindowEx(
      IntPtr hwndParent,
      IntPtr hwndChildAfter,
      string lpszClass,
    string lpszWindows);
    [DllImport("User32.dll")]
    private static extern Int32 SendMessage(
      IntPtr hWnd,        
      int Msg,        
      IntPtr wParam,       
    StringBuilder lParam);
    private void button1_Click(object sender, EventArgs e)
    {
      // 返回写字板主窗口句柄
      IntPtr hWnd = FindWindow("Notepad", "Untitled - Notepad");
      if (!hWnd.Equals(IntPtr.Zero))
      {
        //返回写字板编辑窗口句柄
        IntPtr edithWnd = FindWindowEx(hWnd, IntPtr.Zero, "Edit", null);
        if (!edithWnd.Equals(IntPtr.Zero))
          // 发送WM_SETTEXT 消息: "Hello World!"
          SendMessage(edithWnd, WM_SETTEXT, IntPtr.Zero, new StringBuilder("Hello World!"));
      }
    }
    
    
    


     


    算神的博客
    2011年7月1日 5:43
  • 真心感谢您!
    2011年7月1日 11:30