2

MFC レガシー コードから WPF ウィンドウに double/float 値を送信しようとしています。WPF WndProc プロシージャは、LParam および WParam の引数を int として受け取ります (10 進数値を切り捨てます)。

private IntPtr WndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)

これどうやってするの?

前もって感謝します

4

1 に答える 1

1

float/double 値を格納する構造を作成し、その構造のアドレスを lParam 値に渡すことができます。メッセージを送信するのではなく投稿する場合は、受信者に構造体が占有しているメモリを解放してもらう必要があります。

#define MYMESSAGECODE (WM_APP + 123 )
typedef struct
{
    float f;
    double d;
} MyDataStruct;

MyDataStruct data;
data.f = 1.0;
data.d = 2.0;
pWpfWnd->SendMessage( MYMESSAGECODE, 0, (LPARAM) &data );
于 2014-02-24T11:31:14.737 に答える