[共通] 当 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 件のコメント:
コメントを投稿