VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

閃爍windows視窗

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 1 樓

發表發表於: 星期三 六月 18, 2003 8:43 pm    文章主題: 閃爍windows視窗 引言回覆

用不到幾行程式碼

**************************************************
*-- Class: flashwindow (c:\tools.vcx)
*-- ParentClass: timer
*-- BaseClass: timer
*-- Time Stamp: 06/18/03 12:45:03 PM
* 用法, 在FORM中加入本物件, 要閃爍時 . thisform.flashwindow1.flash( .t. ) , 結束閃爍傳給它 .f. .
DEFINE CLASS flashwindow AS timer


Height = 23
Width = 23
Name = "flashwindow"

*-- 先在FORM建立的時候就先記錄這個FORM的hwnd
hwnd = 0


PROCEDURE flash
lpara mstat
this.interval = iif( mstat , 1000, 0 )
ENDPROC


PROCEDURE Init
DECLARE INTEGER GetActiveWindow IN user32
DECLARE INTEGER GetFocus IN user32
declare integer FlashWindow in user32.dll integer hwnd, integer bInvert
this.hwnd = GetFocus()
* HWnd = GetFocus()
*hdc = GetWindowDC(hwnd)
ENDPROC


PROCEDURE Timer
*FlashWindow(GetActiveWindow(), 1)
FlashWindow( this.hwnd , 1)
this.interval = max( 100 , this.interval - 50 ) &&--讓它越閃越快.
ENDPROC


ENDDEFINE
*
*-- EndDefine: flashwindow
**************************************************
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 2 樓

發表發表於: 星期四 六月 19, 2003 12:00 pm    文章主題: 引言回覆

如果有螢幕保護的功能會更加理想

螢幕保護的功能,目前我還在構思中

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 3 樓

發表發表於: 星期二 六月 24, 2003 10:10 am    文章主題: 引言回覆

像我在設計FORM時, 每個object皆是使用自行設計的CLASS, 所在設計螢幕保護程式是輕而易舉, 只要加個timer , 在每個object 的 getFocus(), LostFocus() 去做一些未動作時間的COUNTER 就可以了.
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 4 樓

發表發表於: 星期二 六月 24, 2003 10:52 am    文章主題: 引言回覆

我的做法如下,但還未完備

程式開始處
PUBLIC mOldBackColor,mNumOld,mnCount
PUBLIC gnScreenCount, gnX, gnY &&滑鼠
LOCAL nHandle,sqlCommand

DODEFAULT()


*!*取得螢幕保護程式所需API宣告
DECLARE INTEGER GetFocus IN user32
DECLARE INTEGER GetCursorPos IN user32 STRING @lpPoint

DECLARE INTEGER DragDetect IN user32;
INTEGER hwnd, STRING @pt

DECLARE INTEGER GetAsyncKeyState IN user32 INTEGER vKey


*mOldBackColor=RGB(0,128,128)
mNumOld=1
mnCount=0
gnScreenCount=0
gnX=0
gnY=0
= getMousePos (@gnX, @gnY)



Timer物件Timer事件
LOCAL lnX,lnY


*!*螢幕保護程式
= getMousePos (@lnX, @lnY)
IF lnX==gnX AND lnY==gnY &&滑鼠不動作時
IF LASTKEY()<>0
gnScreenCount=0
ELSE
gnScreenCount=gnScreenCount+1
ENDIF
ELSE
IF gnScreenCount>100
DO FORM frmScreenSaver
ENDIF
gnScreenCount=0
ENDIF
= getMousePos (@gnX, @gnY)
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作