我尝试将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);
答案 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。