文字在文本框里居中后,
能不能用语句实现PICTURE框里也居中,
颜色也随文本框文字的颜色而改变。
图形框控件(PICTURE)里的单个字的颜色也可随文本框中文字同步改变
想了很久没办法解决,希望高手能支持我
支持我,谢谢!!!
能不能用语句实现PICTURE框里也居中,
颜色也随文本框文字的颜色而改变。
图形框控件(PICTURE)里的单个字的颜色也可随文本框中文字同步改变
想了很久没办法解决,希望高手能支持我
支持我,谢谢!!!
直观的解决方法是,用getdc api获取文本框的DC,然后用bitblt文本框的图像copy过去。
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (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
Private Sub Form_Load()
Form1.ScaleMode = 3
Picture1.ScaleMode = 3
End Sub
Private Sub Text1_Change()
Dim hdc As Long
hdc = GetDC(Text1.hwnd)
starw = (Picture1.ScaleWidth - Text1.Width) / 2
starh = (Picture1.ScaleHeight - Text1.Height) / 2
BitBlt Picture1.hdc, starw, starh, Text1.Width, Text1.Height, hdc, 0, 0, vbSrcCopy
End Sub
也就是说你如果把picturebox的autoredraw属性改为true,则要在bitblt后添加一句picture1.refresh
如果是要单个字符改变颜色,则可以用label控件数组+动态加载。
如果最后需要保存为BMP,则在保存前用TEXTOUT这个API按照每一个Label的位置和FORECOLOR把字符输出到PICTUREBOX上。
点击COMMAND(居中按钮),字才居中。
的确是不行。不能同步,
我搞不清你的目的是什么。