[转帖]谈谈如何在图片框上输出透明文字
1、声明API函数: <BR>FUNCTION ulong GetDC(ulong hwnd) LIBRARY "user32.dll" <BR>FUNCTION ulong SetBkMode(ulong hdc,ulong nBkMode) LIBRARY "gdi32.dll" <BR>FUNCTION ulong TextOut(ulong hdc,ulong x,ulong y,ref string lpString,ulong nCount) LIBRARY "gdi32.dll" ALIAS FOR "TextOutA" <BR>2、声明一窗口级实例变量: <BR>//获取图片框的句柄 <BR>ulong i_ulng_handle <BR>3、在窗口中放入一图片框控件,名为:p_1,在constructor事件中加入以下代码: <BR>i_ulng_handle=getdc(handle(this)) <BR>//设置此控件的背景为透明模式 <BR>setbkmode(i_ulng_handle,1) <BR>4、加一按纽,text为:写字,单击事件中加入以下代码: <BR>long lng_len,lng_x,lng_y <BR>string str_text <BR>str_text="这只是测试" <BR>lng_len=len(str_text)<P>//使文字在图片中居中 <BR>lng_x=unitstopixels((p_1.width - lng_len*40),xunitstopixels!) /2 <BR>lng_y=unitstopixels(p_1.height - 40,yunitstopixels!) /2 <BR>//这是必需的,不知为啥? <BR>p_1.enabled=false <BR>//输出文字 <BR>textout(i_ulng_handle,lng_x,lng_y,str_text,lng_len) <BR>5、加一按纽,text为:抹掉,单击事件中加入以下代码: <BR>p_1.enabled=true </P>
<P>[注]以上的代码还有很多不足的地方,因本人水平有限,如有哪位高手看到此段代码后有更好的解决办法或能将此代码进一步完善,请回复此贴,本人也想向各位高手好好学习学习。多谢! <BR></P>
<P>→我是小木鱼(Lag)<BR></P>
页:
[1]