带有EM_FINDWORDBREAK问题的SendMessage

时间:2010-12-24 21:48:32

标签: c# api

我尝试将SendMessage与EM_FINDWORDBREAK一起使用 我有鼠标的位置>> pos

问题是SendMessage函数总是返回0

 [DllImport("User32.dll", EntryPoint = "SendMessage")]
        public static extern int SendMessage(IntPtr hWnd, uint uMsg, int wParam, int lParam);

int  star= SendMessage(hHandle, EM_FINDWORDBREAK, (int)WB_RIGHT, pos); 

2 个答案:

答案 0 :(得分:1)

使用此:

 [DllImport("User32.dll", EntryPoint = "SendMessage")]
 public static extern IntPtr SendMessage(IntPtr hWnd, uint uMsg, IntPtr wParam, IntPtr lParam);

而不是:

 [DllImport("User32.dll", EntryPoint = "SendMessage")]
 public static extern int SendMessage(IntPtr hWnd, uint uMsg, int wParam, int lParam);

因为后者仅适用于32位系统。 (另外,EntryPoint = "SendMessage"部分是多余的。)

答案 1 :(得分:0)

尝试使用SetLastError = true导入导入,然后使用Marshal.GetLastWin32Error。如果您的签名正确,请参阅pinvoke.net。