棒グラフの上にコントロールを置きたい – プログラミング – Home

棒グラフの上にコントロールを置きたい
 
通知
すべてクリア

[解決済] 棒グラフの上にコントロールを置きたい


たまお
 たまお
(@たまお)
ゲスト
結合: 17年前
投稿: 20
Topic starter  

以下のコードは、赤い棒グラフのつもりの四角形を描画しているのですが、
この上に、何らかのコントロールを置いて、イベントを拾いたいのです。
しかも、下にある赤い棒グラフが見えるような透明なコントロールとかを
棒グラフの上に、置けないものでしょうか?
よろしくお願い致します。

// CTestFormView メッセージ ハンドラ
void CTestFormView::OnDraw(CDC* pDC)
{

// 赤で棒グラフ描画
pDC->FillSolidRect(10, 10, 100, 100, RGB(255, 0, 0));

}


引用未解決
トピックタグ
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

どうしてビューでイベントを拾わないのですか?

ビューがクリックされた時、クリックされた点が矩形の中に
あるかどうかを判断すれば良いだけですが。


返信引用
たまお
 たまお
(@たまお)
ゲスト
結合: 17年前
投稿: 20
Topic starter  

ご回答ありがとうございます。
ビューでイベントを拾う方法では、既存のプログラムの修正が大変なため
やりたくなくて、
コントロールを貼り付ける方法を探しています。
または、コントロール自体に、描画できるような方法でもよいのですが・・・
よろしくお願い致します。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

> ビューでイベントを拾う方法では、既存のプログラムの修正が大変なため
> やりたくなくて、
> コントロールを貼り付ける方法を探しています。

ビューでイベントを拾う方が修正が大変、という状況が想像できません。
プログラムがどんなに複雑(or 無茶苦茶)だったとしても、
コントロールを貼り付けて正しく制御するより、
ビューでイベントを処理する方がよほど簡単だと思うし、
ビューを変更してはいけない、というわけでもなさそう。

あなたか私が大きな勘違いをしているのかもしれませんね。
イベントって具体的に何ですか?クリックイベント?


返信引用
たまお
 たまお
(@たまお)
ゲスト
結合: 17年前
投稿: 20
Topic starter  

基本的に拾いたいイベントは、クリックイベントですが、
マウスが重なった時にも、噴出し文字などを出したいので、
コントロールを置いたほうが簡単だし、マウスの座標なども
常に把握しなくて良いのでと思っています。

大変申し訳ありませんが・・・
私が知りたいことは、透明なコントロールのようなものです。
よろしくお願いします。


返信引用
玲音 (st.lain)
 玲音 (st.lain)
(@玲音 (st.lain))
ゲスト
結合: 17年前
投稿: 89
 

ソースレベルで示されてないので単に妄想ですが。

> CTestFormView
CFormView派生だと配置するコントロールの数によって描画原点がずれるとか、
その絡みで面倒だということカナ、と思ったり。

上記のような問題があるのであれば、グラフ描画部分の原点座標を別個に
貼り付けたピクチャーコントロールの左上原点からの座標に変換してから
描画すると良いのでは、と思います。

但し、自分が同様にイベントを捕らえたい、としても既にたいちうさんが指摘されて
いるように座標からグラフの当たり判定を行う関数を作ってコールするような
実装にします。

# コントロールを置くとすれば、ON_COMMAND_RANGEなりで不特定数の棒グラフ本数も
# 視野にイベントを組まないといけないので、恐らくそのほうが面倒かと。


返信引用
たまお
 たまお
(@たまお)
ゲスト
結合: 17年前
投稿: 20
Topic starter  

ご指摘ありがとうございます。
説明が不十分で大変申し訳ありませんが、座標云々の考慮ではなくて、

私が知りたいのは、単に、透明なコントロールの配置、または描画可能なコントロール
の実装方法についてですので、
何かご存知のお方、ご教授よろしくお願い致します。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

これを参考にしてみてください。

透明なコントロール(無料のユーザー登録が必要だと思う)
http://www.codeproject.com/KB/edit/ctrltrans.aspx?df=100&forumid=2701&exp=0&select=1577862&tid=1443642

描画可能なコントロール
http://www.athomejp.com/goldfish/mfc/static/static_ex.asp


返信引用
たまお
 たまお
(@たまお)
ゲスト
結合: 17年前
投稿: 20
Topic starter  

ご返答ありがとうございます。 

よくわからないのですが、「透明なコントロール」の
サンプルソース内の以下のコントロールは、
クリックイベントを拾えるのでしょうか?

CStaticTrans m_stcTrans;

何度も申し訳ありません。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

CStaticTransはどうか知らないけど、CStaticでクリックイベントを拾うには
SS_NOTIFYをセットします。


返信引用
たまお
 たまお
(@たまお)
ゲスト
結合: 17年前
投稿: 20
Topic starter  

ご指摘の情報を元に、なんとかできそうな気がしてきました。
教えて戴いたサイトのソースを元に、色々と試してみます。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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