
まず、Form1の上にimage1を配置し、その奥にTGraphicControlを継承した描画コンポーネントを置いています。
そして、image1のTransparentを設定し、描画が見えるようにします。
つまりimage1が窓枠で、ガラス(透過)越しに風景の描画が見えると考えてください。
そこで、描画コンポーネント側でTGraphicControl.Canvas.Drawで風景の描画を行います。すると、描画したものが窓枠より手前に表示されてしまい、窓枠&透過の意味が無くなってしまいました。
image1の下に普通のTimageを置き、Timage.Canvas.Drawで行うと、異常は起きません。何故なのでしょうか・・・?
No.1ベストアンサー
- 回答日時:
こんにちは。
私もあまりよくわかっていないのですが、描画コンポーネント側のTGraphicControl.Canvas.Drawで描画する場所
が問題になってきます。
TGraphicControlから仮想関数Paintをオーバーライドして出来たPaint関数内に、Canvas.Drawを行わないと、ウィンドウズのOnPaintイベント(WM_PAINT)に反応しないので、上面に表示します。
TGraphicControlから派生したコンポーネントにのOnPaintイベントがあれば、
そこに、Canvas.Drawを行うとうまくいくと思います。
答えになっていないかもしれませんが宜しくお願いします。
ありがとうございます。コンポーネントのソースを見ると、Paint関数にてCanvas.Drawを行っていました。
(正解なのでは?と思ったのですが・・・)
TImageを置いてCanvas.Drawすると発生しないので、ますますわからなくなってしまいました・・・。(^^;
もう少し悩んでみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ListBoxで改行したい
-
C++/CLIを用いて画像をクリップ...
-
for文の実行速度を遅くしたいの...
-
C#を用いて描画する四角形の角...
-
ビットマップに描画をしてピク...
-
VB.netで図形描画ができません^^;
-
c言語 ちらつき
-
PictureBoxのダブルバッファリ...
-
MFCでのコンボボックスについて
-
花火のアルゴリズム
-
Excel VBA:コントロールボタン...
-
VC++ MFCチェックボックスの色...
-
Visual C++ MaskedTextBoxの右...
-
worksheetFunctionクラスのVloo...
-
VBA シートのボタン名を変更し...
-
実行時エラー 438になった時の...
-
「Columns("A:C")」の列文字を...
-
VBAがブレークモードになっ...
-
ユーザーフォームを表示中にシ...
-
VBA ユーザーフォームの Keypre...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
C++プログラミングについて。
-
Excel VBA:コントロールボタン...
-
C#を用いて描画する四角形の角...
-
MFCでのコンボボックスについて
-
ビットマップに描画をしてピク...
-
PowerPoint の VBA
-
円の頂点の求め方を知りたいです。
-
[続編] pictureBoxそのものの...
-
for文の実行速度を遅くしたいの...
-
給紙トレイをダイアログを使わ...
-
文字のちらつきを抑えるには
-
画面に絵を出す方法
-
delphi 画面のちらつき
-
shapeを描画
-
VC;;6.0のMFCで線を簡単に引け...
-
vc++のペイント処理。
-
win32api複数のタイマーを同時...
-
c言語 ちらつき
-
Visual C++ MaskedTextBoxの右...
おすすめ情報