- 日時: 2011/04/05 11:23
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[チャート][描画・画像][] * * キーワード:グラフ,描画,グラフィック,ちらつく,チラツク,画面,ちらつき * ***********************************************************************************
---------------------------------------------------------------------------------- No.5410 Re: グラフがちらつくんですけど 投稿者:K.J.K. [2002/08/01(木)12:07分] ----------------------------------------------------------------------------------
とりあえず、DrawModeプロパティを変更してみたのでしょうか? これやRepaint プロパティなどを上手く使えば、かなりチラツキは減らせると思うのですが。
で、手抜きでやるならこんな感じ。
Private Enum DVASPECT DVASPECT_CONTENT = 1 DVASPECT_THUMBNAIL = 2 DVASPECT_ICON = 4 DVASPECT_DOCPRINT = 8 End Enum
Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type
Private Declare Function OleDraw Lib "ole32.dll" _ ( ByVal pUnk As Object, ByVal dwAspect As DVASPECT, _ ByVal hDCDraw As Long, lprcBounds As RECT ) As Long
' コントロールがおいてあるFormのScaleModeは3-Pixelに ' なっていると仮定しています。 ' ' また、picBackground As PictureBoxがあるとしています。 ' AutoRedraw = True, ScaleMode = 3, BorderStyle = 0 ' としています。 ' ' コントロールは、有効なモノのみを渡すとし、エラー処理は ' 省いてあります。
Public Function PictureFromControl(ctl As Object) As Picture
Dim udtRect As RECT
With udtRect .Left = 0 .Top = 0 .Right = ctl.Width - 1 .Bottom = ctl.Height - 1 End With
With picBackground Call .Cls Call .Move(0, 0, ctl.Width, ctl.Height) Call OleDraw(ctl.Object, DVASPECT_CONTENT, .hDC, udtRect) Set PictureFromControl = .Image End With End Function
|