無閃爍移動

2022-02-28 07:35:33 字數 2708 閱讀 5917

picture控制項+timer控制項=無閃爍移動。

事例:

form   =   picture1   +   timer1

設定   timer1.間隔=50

複製下面**看效果

vbscript code

'*******************cike技術**************************''

bitblt 目標hdc, 目標x, 目標y, 影象高, 影象寬, 源hdc, 源x, 源y, 光柵運算常數

'【函式】

'bitblt

'【作業系統】

'win9x: yes

'winnt: yes

'【宣告】

'bitblt lib "gdi32" alias "bitblt" (byval hdestdc as long, byval x as long, byval y as long, byval nwidth as long, byval nheight as long, byval hsrcdc as long, byval xsrc as long, byval ysrc as long, byval dwrop as long) as long

'【說明】

'將一幅點陣圖從乙個裝置場景複製到另乙個?源和目標dc相互間必須相容

'【返回值】

'long,非零表示成功,零表示失敗。會設定getlasterror

'【其它】

'在nt環境下,如在一次世界傳輸中要求在源裝置場景中進行剪下或旋轉處理,這個函式的執行會失敗

'如目標和源dc的對映關係要求矩形中畫素的大小必須在傳輸過程中改變,那麼這個函式會根據需要自動伸縮、旋轉、摺疊、或切斷,以便完成最終的傳輸過程

'【參數列】

'hdestdc -------- long,目標裝置場景

'x,y ------------ long,對目標dc中目標矩形左上角位置進行描述的那個點。用目標dc的邏輯座標表示

'nwidth,nheight - long,欲傳輸圖象的寬度和高度

'hsrcdc --------- long,源裝置場景。如光柵運算未指定源,則應設為0

'xsrc,ysrc ------ long,對源dc中源矩形左上角位置進行描述的那個點。用源dc的邏輯座標表示

'dwrop ---------- long,傳輸過程要執行的光柵運算''

***************==== --- cike技術*** 16874787---***************====

private

declare

function

bitblt lib

"gdi32

"(byval hdestdc

aslong

, byval x

aslong

, byval y

aslong

, byval nwidth

aslong

, byval nheight

aslong

, byval hsrcdc

aslong

, byval xsrc

aslong

, byval ysrc

aslong

, byval dwrop

aslong

) as

long

const

speed

asbyte=1

dimwid%

dimhei%

dimdc

&const

text ="

cike技術*** 16874787

"private

subform_load()

dc =

picture1.hdc

picture1.currentx =0

picture1.currenty =0

picture1.print text

picture1.scalemode

=vbpixels

wid

=picture1.textwidth(text)

hei

=picture1.textheight(text)

picture1.width

=wid

*screen.twipsperpixelx

picture1.height

=hei

*screen.twipsperpixely

end sub

private

subtimer1_timer()

dimi%

fori =0

tospeed

bitblt dc, wid +1

, hei +1

, 1, hei, dc, 0,

0, &hcc0020

'&hcc0020 is equvilent to vbsrccopy

bitblt dc, 0,

0, wid, hei, dc, 1,

0, &hcc0020

bitblt dc, wid, 0,

1, hei, dc, wid +1

, hei +1

, &hcc0020

next

ipicture1.refresh

end sub

SDI主框架啟動隱藏,無閃爍

在initinstance 在 ccommandlineinfo cmdinfo parsecommandline cmdinfo 視窗隱藏 m ncmdshow sw hide enableloadwindowplacement false 排程在命令列中指定的命令。如果 用 regserver ...

VC無閃爍刷屏技術的實現

1.顯示的圖形為什麼會閃爍 我們的繪圖過程大多放在ondraw或者onpaint函式中,ondraw在進行螢幕顯示時是由onpaint進行呼叫的。當視窗由於任何原因需要重繪時,總是先用背景色將顯示區清除,然後才呼叫onpaint,而背景色往往與繪圖內容反差很大,這樣在短時間內背景色與顯示圖形的交替出...

VC無閃爍刷屏技術的實現

我們的繪圖過程大多放在ondraw或者onpaint函式中,ondraw在進行螢幕顯示時是由onpaint進行呼叫的。當視窗由於任何原因需要重繪時,總是先用背景色將顯示區清除,然後才呼叫onpaint,而背景色往往與繪圖內容反差很大,這樣在短時間內背景色與顯示圖形的交替出現,使得顯示視窗看起來在閃。...