作成しようとしているプログラムとして、
メインウインドウからダイアログを呼び、
その中に表示されているビットマップをピックして、
メインウインドウにドラッグ&ドロップをすると、そのビットマップがメインウインドウ内に表
示されるというプログラムを作成したいのですが、、、、
考え方としては、IDの受け渡しで行えそうな感じがしているのですが、ダイアログで拾った、ビ
ットマップのIDを、メインウインドウの描画の部分にどう、受け渡していいのかアイデアが浮か
びません。
どうすればいいのでしょうか??
なにか、いい関数でもありますか??
すいません。質問の部分が散漫としていて。
よろしくおねがいします。
はずしてたらごめんなさい。
PostMessageかSendMessageを使用すればよいかと。
あと、ダイアログはモーダルじゃなくてモードレスのほうがいいんじゃないでしょうか。
ありがとうございます。
しかし、解決できませんでした、、、。
PostMessageかSendMessageを使用するときにつかう、
メインウインドウのハンドル名はどう取得すればよいのでしょうか??
それから、
PostMessageかSendMessageなどでIDを送ったとすれば、
どこに格納されるのでしょうか??
そのIDを、メインウインドウ内で使用したいのですが、、、
OnDraw関数内に渡せばいいのでしょうが、、、どうすれいいのでしょう??
> PostMessageかSendMessageを使用するときにつかう、
> メインウインドウのハンドル名はどう取得すればよいのでしょうか??
>
(特に書いてないようですが、)
MFCならCWnd::GetParent()でよろしいかと。
> PostMessageかSendMessageなどでIDを送ったとすれば、
> どこに格納されるのでしょうか??
>
??
何か、勘違いをされているように見受けられます。
CWnd::PostMessage()やCWnd::SendMessage()は、メッセージを飛ばす関数です。
ユーザ定義のメッセージを準備し、
そのパラメータ(LPARAM or WPARAM)にIDをセットすることになると思います。
ですから、メインウィンドウ側では、
それ用のメッセージハンドラを実装することになります。
>メインウインドウにドラッグ&ドロップをすると、
>そのビットマップがメインウインドウ内に表示されるというプログラムを作成したい
AfxOleInit(),COleDropSource,COleDropTarget,COleDataSource(必要に応じて他クラスも)
を使う方法があります。D&D機能拡張に対応時も、最少コード量で対応できると思います。
詳しくは MSDNで上記をキーワードにして辿り着いたページ内にある、
「ドラッグ アンド ドロップ (OLE)」のリンク先の説明を参照して下さい。
