先看代码:
[DllImport("user32", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(HandleRef hWnd, int msg, int wParam, ref PARAFORMAT2 lParam);
-----------------------------------------------------------
[DllImport("user32", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(HandleRef hWnd, int msg, int wParam, ref CHARFORMAT2 lParam);
上面那个是设置段落格式用,下面的是设置字体格式。如果我只设置段落或只设置字体,那好办。问题是两者我都需要设置,这么一来SendMessage就"分身乏术"了。我该怎么办呢?

解决方案 »

  1.   

    [DllImport("user32", CharSet = CharSet.Auto)] 
    private static extern IntPtr SendMessage(HandleRef hWnd, int msg, int wParam, ref PARAFORMAT2 lParam); 
    ----------------------------------------------------------- 
    [DllImport("user32", CharSet = CharSet.Auto,EntryPoint="SendMessage")] 
    private static extern IntPtr SendMessage2(HandleRef hWnd, int msg, int wParam, ref CHARFORMAT2 lParam); 这样不就行了。
      

  2.   

    [DllImport("user32", CharSet = CharSet.Auto)] 
    private static extern IntPtr SendMessage(HandleRef hWnd, int msg, int wParam, ref PARAFORMAT2 lParam); 
    ----------------------------------------------------------- 
    [DllImport("user32", CharSet = CharSet.Auto,EntryPoint="SendMessage")] 
    private static extern IntPtr SendMessage2(HandleRef hWnd, int msg, int wParam, ref CHARFORMAT2 lParam); 这样不就行了。
      

  3.   

    为啥会"分身乏术"呢?
    参数类型都不一样相当于一个重载啊.
    当然手动设置EntryPoint也不错了.