No.2ベストアンサー
- 回答日時:
CBitmap型のメンバー変数を用意して
OnHScrollなどのイベントでこれにメモリーDCなどで描画を行うようにする
描画が終わったらメモリーDCからBitmapの選択を外す
選択をはずしたBitmapをPicturBoxにSetBitmapで貼り付ける
といった具合にしてやると わざわざOnPaintで描画処理をする必要がなくなります
『ダブルバッファ』など画面のチラつきを抑える手法について検索してみましょう
解答ありがとうございます。
Invalidate();ですが
inlidate(FALSE);でちらつきはおさえられました。
くだらない事で質問すみませんでした。
もう少し調べてCBitmap型の変数で簡潔なコードを書きたいと思います
勉強不足ですみません。
No.3
- 回答日時:
ダイアログのOnPaintで描画しても、ピクチャボックスのOnPaintと競合してしまい、思うような動作とならないことがあります。
方法としては、#2さんのおっしゃるBitmapを貼り付ける方法の他に、オーナードローを用いる方法や、WM_CTLCOLORを処理する方法が考えられますね。
No.1
- 回答日時:
どのようなコードをお書きなのでしょう?
OnHScroll、OnPaintの内容を投稿してみませんか
そのアプリに別のアプリをかぶせてから、そのアプリをアクティブにした場合はどうなのでしょう
すみません。解決しました。
OnPaint内で
int red;
int green;
int blue;
red = mySCR1->GetScrollPos();
green = mySCR2->GetScrollPos();
blue = mySCR3->GetScrollPos();
mySCR1->SetScrollPos(red,TRUE);
mySCR2->SetScrollPos(green,TRUE);
mySCR3->SetScrollPos(blue,TRUE);
CWnd* myPICT1 = GetDlgItem(IDC_PICT);
CClientDC myDC(myPICT1);
CRect myRECT;
CBitmap BMP;
myPICT1->GetClientRect(myRECT);
memDC1.DeleteDC();
memDC1.CreateCompatibleDC(&myDC);
BMP.CreateCompatibleBitmap(&myDC,myRECT.Width(),myRECT.Height());
memDC1.SelectObject(BMP);
myDC.FillSolidRect(myRECT,RGB(red,green,blue));
CBrush myBrush ,*oldBrush;
myBrush.CreateSolidBrush(RGB(red,green,blue));
oldBrush = myDC.SelectObject(&myBrush);
としまして、
HSCrollないでも
同じようにしました。
HScroll内でInvalidate();
で呼び出しましたらちらつきが酷いために
回りくどいですがこうやりました。
お早い返答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 タスクバー上に表示されたアドレス・ボックス? 1 2023/04/30 17:37
- フリーソフト GIMPの使い方 1 2022/07/11 13:52
- デスクトップパソコン ハードディスク修理業者さんって、あとあと変な請求とかします? 6 2022/11/13 13:49
- その他(パソコン・スマホ・電化製品) デジタルデータリカバリーしか頼れるとこありませんか? 3 2022/08/03 20:10
- ドライブ・ストレージ パソコンのハードディスクって、寿命とかってあったりします? 4 2022/04/13 21:03
- その他(パソコン・周辺機器) ハードディスクの寿命ってありますか? 3 2022/06/30 12:09
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Photoshop(フォトショップ) 【Photoshop】画像拡大時に急激に画面外まで拡大してしまうのを制御したい 1 2023/08/25 03:04
- 画像編集・動画編集・音楽編集 ボカロの架空窓口の閉鎖という曲で動画を作りたい者です。 1 2022/06/13 18:12
- Photoshop(フォトショップ) Photoshopだと長方形ツールを使っても色が出ません。というか、レイヤーに表示されてすらいません 1 2022/08/06 23:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
立方体をくるくる回転させるプ...
-
.net chartでの積層棒グラフの...
-
COLORREF color の反転色
-
VC++ ドラッグしながらの図の...
-
ピクチャーボックスでの折線グ...
-
DrawLineで引いた線が消えてし...
-
C#2005でExcelの図形描画のよう...
-
VB.NETでグラフィックを描くと...
-
円の頂点の求め方を知りたいです。
-
給紙トレイをダイアログを使わ...
-
c言語 ちらつき
-
worksheetFunctionクラスのVloo...
-
実行時エラー 438になった時の...
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ウォッチ式の文字数制限について
-
【C#/Java?】try-catchでcatch...
-
エクセルVBAのフォームを最...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
Word 描画オブジェクトを削除...
-
C#を用いて描画する四角形の角...
-
ビットマップに描画をしてピク...
-
PowerPoint の VBA
-
給紙トレイをダイアログを使わ...
-
win32api複数のタイマーを同時...
-
画面に絵を出す方法
-
MFCでのコンボボックスについて
-
.NETのPictureBoxでウインドウ...
-
scilabでのグラフ描画時の軸設定
-
Excel VBA:コントロールボタン...
-
VC;;6.0のMFCで線を簡単に引け...
-
花火のアルゴリズム
-
VB.NETでグラフィックを描くと...
-
水平線の描画
-
Excel 2007で、フリーフォーム描画
-
C# DrawImage 物理サイズでな...
-
円の頂点の求め方を知りたいです。
おすすめ情報