ActiveBasic4.23.00を使ってプログラムを書いています。
例えば、次のようなコードがあったとします。
'グローバル
Dim DragFlag As Long
Dim hDC As HDC
'此処まで
Sub MainWnd_Destroy()
ReleaseDC(hMainWnd,hDC)
test_DestroyObjects()
PostQuitMessage(0)
End Sub
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
hDC = GetDC(hMainWnd)
End Sub
Sub MainWnd_LButtonDown(flags As Long, x As Integer, y As Integer)
DragFlag = 1
MoveToEx(hDC,x,y,ByVal NULL)
End Sub
Sub MainWnd_MouseMove(flags As Long, x As Integer, y As Integer)
If DragFlag = 0 Then Exit Sub
LineTo(hDC,x,y)
End Sub
Sub MainWnd_LButtonUp(flags As Long, x As Integer, y As Integer)
DragFlag = 0
End Sub
(ABWiki様を参考にさせていただきました。)
これで、簡単なお絵かきが出来ますが、再描写(例えば、ウインドウの大きさを変えるなど)をするとすべて消えてしまいます。
これを、描いた線を消さずに再描写することは出来ないのでしょうか。
すみませんがご教授ください。
No.1ベストアンサー
- 回答日時:
まぁ おおざっぱに言えば
1) 入力された点群データを配列などに記憶しておいて Paintイベントで描画
2) 裏画面(Bitmap)を使った ダブルバッファを実装
といった具合でしょう
WM_CRATEイベントなどで 画面(デスクトップ)の大きさと同じビットマップを作成
HDCやHPEN、HBRUSHなども必要に応じて作成
LButonDownイベントで
表画面の描画のHDCでMoveToEx
同様に裏画面でもMoveToEx
MouseMoveで表画面へLineToで描画 ... 裏画面へは描画しない
LButtonUpで裏画面へLineToで描画
始点と終点の範囲を RECT構造体にセットして InvalidateRect
Paintイベントで 裏画面から表画面へ BitBltなどで転送
といった具合で ...
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/11 08:33
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:13
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
win32api複数のタイマーを同時...
-
scilabでのグラフ描画時の軸設定
-
C#で壁の当たり判定と自キャラ...
-
ビットマップに描画をしてピク...
-
給紙トレイをダイアログを使わ...
-
C#を用いて描画する四角形の角...
-
画面に絵を出す方法
-
ListBoxで改行したい
-
VB2010にて、プロットエリア...
-
線の描画速度
-
ポリゴン 球体を三角形パッチ...
-
VC++2010 MFC EDIT に格子
-
worksheetFunctionクラスのVloo...
-
VBA シートのボタン名を変更し...
-
ユーザーフォームを表示中にシ...
-
【C#/Java?】try-catchでcatch...
-
エクセルエラー13型が一致しま...
-
ExcelVBAのユーザーフォームの...
-
「Columns("A:C")」の列文字を...
-
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 物理サイズでな...
-
円の頂点の求め方を知りたいです。
おすすめ情報