VCのようなオブジェクトの貼り付け処理について:(コントロールのグループ化)?サブクラス化 – プログラミング – Home

VCのようなオブジェクトの貼り付け処理...
 
通知
すべてクリア

[解決済] VCのようなオブジェクトの貼り付け処理について:(コントロールのグループ化)?サブクラス化


裕里
 裕里
(@裕里)
ゲスト
結合: 18年前
投稿: 25
Topic starter  

開発環境はVC++2005 MFC-SDIです。

本当に、何度も何度も申し訳ありません。

現在のフェーズは、コントロールのグループ化についてです。

手法としまして、
・ポップアップメニュにグループ化/グループ化解除を追加
・コントロールを複数選択している状況でグループ化
・グループ化されている状況のコントロール上でグループ化解除
を行おうとしてます。

それぞれのグループには、任意のグループIDを持たせ、それを各コントロールに
持たせることにより、グループとして認識させております。

解除時もコントロールのグループIDより解除を行おうとしているのですが、
コントロール上では、ポップアップメニューのイベントがダイアログで
拾うことが出来ません。
おそらく、コントロールをダイアログのサブクラスにする必要があるとは
薄々感じているのですが(違いますかね・・・・)

現状では、コントロール管理クラスにダイアログのポインタを渡して、
コントロールをCreateしております。

申し訳ありませんが、ご教授願えませんでしょうか?


引用未解決
トピックタグ
SundayProgramer
 SundayProgramer
(@SundayProgramer)
ゲスト
結合: 18年前
投稿: 7
 

>コントロール上では、ポップアップメニューのイベントがダイアログで
>拾うことが出来ません。
>おそらく、コントロールをダイアログのサブクラスにする必要があるとは
>薄々感じているのですが(違いますかね・・・・)

Yes。サブクラス化して、メッセージをスルーパスしてやれば出来ると思います。
それか、最初おっしゃっていたように、ビットマップ表示してやれば、面倒なメッセージ処理は
いらなくなると思います。
最終手段はフックですが、お勧めはしません。

#“ダイアログの”でなく、継承型のサブクラスです。


返信引用
裕里
 裕里
(@裕里)
ゲスト
結合: 18年前
投稿: 25
Topic starter  

おはようございます。エディットモードのコントロールとして使用している
ボタンの自作クラスから、ダイアログのOnCommandを呼び出すことによって、
処理はできたのですが、やり方とし問題ないですか?
ダイアログのOnCommandをpubulicに修正して、呼び出しております。

BOOL CMyButton::OnCommand(WPARAM wParam, LPARAM lParam)
{
((CMainDlg*)m_parentdlg)->OnCommand(wParam,lParam);
return CButton::OnCommand(wParam, lParam);
}


返信引用
SundayProgramer
 SundayProgramer
(@SundayProgramer)
ゲスト
結合: 18年前
投稿: 7
 

>ダイアログのOnCommandをpubulicに修正して、呼び出しております。

>BOOL CMyButton::OnCommand(WPARAM wParam, LPARAM lParam)
>{
> ((CMainDlg*)m_parentdlg)->OnCommand(wParam,lParam);
> return CButton::OnCommand(wParam, lParam);
>}

アクセス制限は変えないほうが良いと思います。
OnCommand を呼び出すなら、

((CMainDlg*)m_parentdlg)->OnCommand(wParam,lParam);
の部分を
m_parentdlg->PostMessage(WM_COMMAND, wParam, lParam);
のが良いと思います。


返信引用
裕里
 裕里
(@裕里)
ゲスト
結合: 18年前
投稿: 25
Topic starter  

なるほど、早速変更させていただきます。ありがとうございます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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