鹰之翼

黑鹰的世界

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  79篇文章 :: 58篇收藏:: 34篇评论:: 1个Trackbacks

文章

收藏

相册

朋友的BLOG

朋友网站

网站留言板

我的网站

我管理的几个论坛版面

存档


正在读取评论……


在看杂志的时候,发现一个VB实现窗体特效的几个例子,于是乎,想到了,将这些代码移值到VFP上来,呵,感兴趣嘛,上次是简单异形窗口,很好实现,后来,在实现向文字窗口进发时,不想遇到了麻烦,因为VFP的表单没有hDC(设备场景句柄)这个属性,后来,自己试着用CreateDC这个API函数试了一下,晕,能通过,但各函数不能有参数,后果可想而知,根本无法实现特效,自己试了很多遍始终不可以,无奈,以为VFP无法实现,便放弃了,后来,在看API函数的时候发现了一个由窗口句柄获得设备场景句柄的API函数GetDC,于是不禁想到,应该可以一试,于是,自己又做了一次尝试,在VFP9中新建了一个表单,然后在ACTIVATE事件里输入以下代码:

DECLARE integer GetDC IN user32 integer hwnd
DECLARE integer BeginPath IN gdi32 as BeginPath integer hDC
DECLARE integer TextOut IN gdi32 as TextOutA integer hDC,integer x,integer y,string  lpString,integer nCount
DECLARE integer EndPath IN gdi32 as EndPath integer hDC
DECLARE integer PathToRegion IN gdi32 as PathToRegion integer Hdc
DECLARE integer SetWindowRgn IN user32 as SetWindowRgn integer hWnd,integer hRgn
DECLARE integer DeleteObject IN gdi32 as DeleObject integer hObject
this.FontSize=100
this.FontBold= .T.
this.FontName="黑体"
this.ForeColor= RGB(255,255,0)
this.BackColor= RGB(0,0,0)
LOCAL hDC as Integer,hRgn as Integer
hDC=GetDC(thisform.HWnd)
LOCAL myreturn
myreturn=BeginPath(hDC)
myreturn=TextOutA(hDC,15,30,"我是一名中国人,我爱自己的祖国,我们应该共同努力,保卫家乡,保卫钓鱼岛,保卫全中国",1800)
myreturn=EndPath(hDC)
hRgn=PathToRegion(hDC)
myreturn=SetWindowRgn(thisform.HWnd,hRgn)
myreturn=DeleteObject(hRgn)

呵,基本通过,也实现函数功能,但,字体大小,全没变,窗口很小很小,图所示

自己尝试了很多次改动,依然如此,看来,VFP实现特效窗口扔任重而道远。

 



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=56742


[点击此处收藏本文]  发表于2004年08月01日 5:17 PM




正在读取评论……

发表评论

大名:
网址:
验证码
评论