Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: SendMessageのパラメーターは4個から3個に変わったのでしょうか?

0 views
Skip to first unread message

DSS

unread,
Nov 27, 2006, 10:56:35 AM11/27/06
to
DSS です.

"紅輝" wrote
about "SendMessageのパラメーターは4個から3個に変わったのでしょうか?"
on Mon, 27 Nov 2006 04:49:02 -0800

>Hwnd2 = SendMessage(Hwnd1, WM_COPYDATA, (WPARAM)Form1->Handle, (LPARAM)&cds);
>の様に使いたいのですが、3個のパラメーターしか受け付けてくれません。

MFC ですか?
::SendMessage() としてはどうですか?

2006/11/28(Tue) 00:56:07
--
Word by DSS
D...@mbj.nifty.com
http://homepage2.nifty.com/DSS/

紅輝

unread,
Nov 28, 2006, 6:32:02 AM11/28/06
to

> MFC ですか?
> ::SendMessage() としてはどうですか?
>
> 2006/11/28(Tue) 00:56:07
> --
> Word by DSS
> D...@mbj.nifty.com
> http://homepage2.nifty.com/DSS/
>
>

DSSさん お返事有難うございます。
MFCです。 仰せの通りに::を入れてみましたが、巧く動きません。相変わらず、3個までしか受け付けません。
チョット長くなりますが、肝心なところだけをリストアップいたしますと、
int cmmd;
HWND Hwnd1, Hwnd2;
COPYDATASTRUCT cds;
Char buffs[256];
Hwnd1 = FindWindow(_T("TThwin"), NULL);
cmmd = 1;
cds.dwData = cmmd;
strcpy(buffs, _T("ABCDEF"));//文字列
cds.cbData = strlen(buffs);//文字の長さ
cds.lpData = &buffs[0];// 文字のポインタ


Hwnd2 = SendMessage(Hwnd1, WM_COPYDATA, (WPARAM)Form1->Handle, (LPARAM)&cds);

if (Hwnd2 > 0) SetForegroundWindow(Hwnd2);

この方法は、昔のバージョンをお持ちの方より教わりましたが、2005では巧く動かないので、
HANDLE   Hwnd1, Hwnd2に変更しました。
実は、Form1も定義されていないという表示も出ていまして、お手上げなのです。好い参考書なども探しましたが、見つからず困っています。 
現状では、自分のアプリにある文字列を、他のアプリケーションに5項目の文字列を一々手作業でタイプ打ちをして書き写しています。これでは不便なので、何とかしたいのです。 よろしくお願い申します。なお、他のアプリはcmmdが1~5までありまして、このcmmdと文字列を順に他のアプリに送れば、それぞれの項目に自動的に入るとのことでした。 よろしくご教授お願い申します。


0 new messages