ダイアログにビットマップを表示した上でCRectTrackerを
使ってある範囲を切り出すソフトを作成しています。
そのときにCRectTrackerが画面の外(左上の座標が
(0,0)未満、または右下の座標(640,480))に出て
しまったときにCRectTrackerを動かしたり、
伸ばしたのを無効にしたいのですがうまく
できません。
教えてください。
(わかりにくい文章ですいません)
以上
CRectTracker::AdjustRectを参照してみてください。
これで出来そうな気がします。
PATIOさん、すばやい回答ありがとうございます。
AdjustRectはオーバーライドしないと使用できないですか
教えてください。
現在はCRectTrackerをオーバーライドしないで
使用しています。
オーバーライドしなくてはいけないならば
参考になるコーディングまたはサイトを
教えて頂けないでしょうか?
インターネットで検索したのですが
うまく見つけられませんでした。
よろしくお願いします。
うーむ。
C++言語の基礎的な知識はお持ちですか?
MFCを使う場合はC++の知識が既にある事が前提だと思います。
知識が足りないようであれば、C++言語の勉強をする事をお勧めします。
この掲示板では何度も書いているので耳たこな人も多いと思いますが、
VC++の入門書とか参考書はC++言語のテキストには使えないと思った方がいいです。
VC++の本は、あくまでも開発環境のテキストであって言語のテキストではないと
思います。C++言語の知識を勉強するのであれば、C++言語の入門書や参考書を読む
べきでしょう。
C++言語の勉強をする時は、コンソールプログラム等で純粋にC++言語の勉強をする
ようにしてMFCは一切使わない方向でやった方が変に引っかからないで良いと思います。
ちなみに今回の場合は、CRectTrackerから派生したオリジナルクラスを作成し、
その派生クラス内でAdjustRectをオーバーライドします。
後は現行のCRectTrackerをオリジナルクラスに置き換えれば行けると思います。
> AdjustRectはオーバーライドしないと使用できないですか
>
単純に考えて、CRectTrackerが持つ標準の機能だけで足りるなら
CRectTrackerクラスをそのまま使えばよいでしょうが、
今回のように、それでは自身の要求が満たせない場合、
CRectTrackerクラスに足りない機能を追加れば良いわけです。
で、どうやって機能を追加するかですが、大抵はクラスを派生させ、
その派生クラスに対して色々機能を追加させていきます。
(勿論全てがそうとは言い切れませんが、今ここで細かい事を言っても仕方ない)
PATIOさんの言うAdjustRectも、この派生クラスに追加してください。
PATIOさん、sugarさん回答ありがとうございます。
「派生クラス」で探したら参考になりそうな
サイトがあったので頑張ってみます。
> オーバーライドしなくてはいけないならば
> 参考になるコーディングまたはサイトを
> 教えて頂けないでしょうか?
C++言語の基本的な知識はある程度持っているつもり
なのですがちょっと工数がかけられない事情が
あって安易にやろうとした結果です。
都合のいいことばかり言って申し訳ありません。
以上