[共通] 当 Blog の投稿に関する基本事項について
→ http://fuunyan.blogspot.jp/2012/09/blog.html
例によって経過などはリストボックスに追加する方向で
・投げるほう
FindWindow で対象画面を見つけて SendMessage でメッセージを送信。
// stdafx.h に追加したやつら
#include <windows.h>
#pragma comment(lib, "user32.lib")
// 対象ウィンドウの検索
HWND hWND;
hWND = FindWindow(nullptr, L"送信先画面名");
if(hWND == nullptr)
{
LBox->Items->Add("not find...");
return;
}
else
LBox->Items->Add("find...");
// メッセージ送信
COPYDATASTRUCT cds;
cds.dwData = 0;
cds.cbData = sizeof("送信文字列 ") + 1;
cds.lpData = L"送信文字列";
::SendMessage(hWND, WM_COPYDATA, 0, (LPARAM)&cds);
・受けるほう
WndProc をオーバーライドして独自処理を作成。
その中で送信メッセージを処理する。
// stdafx.h に追加したやつら
#include <windows.h>
// protectedに追加(デストラクタの後ろとか?)
protected:
virtual void WndProc(Message% m) override
{
switch(m.Msg)
{
case WM_COPYDATA:
// 処理記述
COPYDATASTRUCT *cds = (COPYDATASTRUCT*)m.LParam.ToInt32();
String^ str = gcnew String( (wchar_t*)cds->lpData);
listBox1->Items->Insert(0, str);
break;
}
Form::WndProc(m);
}
0 件のコメント:
コメントを投稿