ビットマップのドラッグ&ドロップ – プログラミング – Home

ビットマップのドラッグ&ドロップ
 
通知
すべてクリア

ビットマップのドラッグ&ドロップ


まこと
 まこと
(@まこと)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

作成しようとしているプログラムとして、

メインウインドウからダイアログを呼び、
その中に表示されているビットマップをピックして、
メインウインドウにドラッグ&ドロップをすると、そのビットマップがメインウインドウ内に表
示されるというプログラムを作成したいのですが、、、、

考え方としては、IDの受け渡しで行えそうな感じがしているのですが、ダイアログで拾った、ビ
ットマップのIDを、メインウインドウの描画の部分にどう、受け渡していいのかアイデアが浮か
びません。

どうすればいいのでしょうか??
なにか、いい関数でもありますか??

すいません。質問の部分が散漫としていて。

よろしくおねがいします。


引用解決済
トピックタグ
はお
 はお
(@はお)
ゲスト
結合: 23年前
投稿: 21
 

はずしてたらごめんなさい。
PostMessageかSendMessageを使用すればよいかと。

あと、ダイアログはモーダルじゃなくてモードレスのほうがいいんじゃないでしょうか。


返信引用
まこと
 まこと
(@まこと)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

ありがとうございます。

しかし、解決できませんでした、、、。
PostMessageかSendMessageを使用するときにつかう、
メインウインドウのハンドル名はどう取得すればよいのでしょうか??

それから、
PostMessageかSendMessageなどでIDを送ったとすれば、
どこに格納されるのでしょうか??
そのIDを、メインウインドウ内で使用したいのですが、、、

OnDraw関数内に渡せばいいのでしょうが、、、どうすれいいのでしょう??


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

> PostMessageかSendMessageを使用するときにつかう、
> メインウインドウのハンドル名はどう取得すればよいのでしょうか??
>
(特に書いてないようですが、)
MFCならCWnd::GetParent()でよろしいかと。

> PostMessageかSendMessageなどでIDを送ったとすれば、
> どこに格納されるのでしょうか??
>
??
何か、勘違いをされているように見受けられます。
CWnd::PostMessage()やCWnd::SendMessage()は、メッセージを飛ばす関数です。
ユーザ定義のメッセージを準備し、
そのパラメータ(LPARAM or WPARAM)にIDをセットすることになると思います。
ですから、メインウィンドウ側では、
それ用のメッセージハンドラを実装することになります。


返信引用
くたくた
 くたくた
(@くたくた)
ゲスト
結合: 24年前
投稿: 119
 

>メインウインドウにドラッグ&ドロップをすると、
>そのビットマップがメインウインドウ内に表示されるというプログラムを作成したい
AfxOleInit(),COleDropSource,COleDropTarget,COleDataSource(必要に応じて他クラスも)
を使う方法があります。D&D機能拡張に対応時も、最少コード量で対応できると思います。

詳しくは MSDNで上記をキーワードにして辿り着いたページ内にある、
「ドラッグ アンド ドロップ (OLE)」のリンク先の説明を参照して下さい。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました