Как использовать SendMessage из F #? - PullRequest
1 голос
/ 26 декабря 2011

Я хотел бы использовать код здесь , чтобы приостановить обновление экрана расширенного текстового поля в коде, который я пишу с использованием F #. Я не знаю, как использовать SendMessage (или WM_SETREDRAW или EM_GETEVENTMASK в этом отношении). Как я могу объявить и использовать соответствующие функции из F #?

Код:

private void StopRepaint()
{
    // Stop redrawing:
    SendMessage(this.Handle, WM_SETREDRAW, 0, IntPtr.Zero);
    // Stop sending of events:
    eventMask = SendMessage(this.Handle, EM_GETEVENTMASK, 0, IntPtr.Zero);
}

1 Ответ

2 голосов
/ 26 декабря 2011

Msdn описывает, как объявлять внешние функции в F #.

Ваша функция будет выглядеть примерно так:

open System
open System.Runtime.InteropServices

module InteropWithNative =
    [<DllImport(@"User32")>]
    extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam)
...