VB程序员博客

VB程序开发

请教各位高手,如何使用图片按钮使程序更美观,当鼠标聚焦图片按钮时显示浮起是彩色状态,失去焦点时显示正常灰色状态,请给点思路?最好能够详细点搜索 网上有好的图片按钮控件能否不用第三方控件实现,http://hi.csdn.net/attachment/200912/15/3184710_126085443629Zu.jpg.thumb.jpg你那个本来就是用第三方控件实现的。

不用第三方控件,那你在 Form_MouseMove() 事件中自己画吧。
用Form_MouseMove()来表示图片失去鼠标,用picture_MouseMove()来表示图片得到鼠标,very easy!

参考此帖:http://topic.csdn.net/u/20091209/22/7e601de4-c531-46a7-94db-56e251f918ba.html?seed=2085671228&r=61925683#r_61925683'1  添加picturebox控件 picture1,添加label空间 lblCommn,叠放在一起,
'2  做两个图片名字 S3.jpg和S3V.jpg
'3  代码
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    picture1.Picture = LoadPicture(App.Path & "S3.jpg")
    picture1.Left = lblCommn.Left
    picture1.Top = lblCommn.Top
End Sub

Private Sub picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    picture1.Picture = LoadPicture(App.Path & "S3V.jpg")
    picture1.Left = lblCommn.Left - 30
    picture1.Top = lblCommn.Top - 30
End Sub


java中如何在点击另一个键之后让焦点立即回到设置的焦点上?

初学Java,用线程和键盘控制编写了个大炮打飞机小程序,把默认的焦点设置到了大炮上,但是,当点击了设置的暂停和恢复按钮之后,焦点就到了恢复上面ⷂ𗂷ⷦ葦㳨﷦𕙤𘀤𘋯𜌥悤𝕨䦧⹥𜨧⹥绤𚆦ᢥ䍤𙋥𐎧닥�𛞥谥䧨𗑤𘊯𜟠

谢谢  ⷂ𗂷ⷂ𗥐䤽�𘦉낷ⷂ𗼯
兄弟,这是VB版呢不好意思  发错地方了  没有注意  以后一定先看清楚 你对你们造成困扰了  抱歉


我的代码如下:
Private Sub DataReport_Initialize()
Set Sections("section1").Controls("image1").Picture = Adodc1.Recordset.Fields("photo").Image
End Sub
可调试时说:“要求对象”。
请问具体要怎样做?
如果不用数据报表,还有其它方法吗?好象回复过你报表中加载图片的问题了…
Adodc1.Recordset.Fields("photo")也没有image属性,怎么可能正确…

不好意思。其它报表工具是什么?在哪里弄到?和你说过,如果你想根据字段图片数据加载对应的图片,datareport是做不到的,其image控件没有datafield属性,不能邦定字段,你只有换其它报表工具….

同意2楼的观点


盼高手帮忙:
  我用的是VB6.0开发工具,数据库是SQL2000 ,如何在datagrid控件最下面添加一个汇总行,来实现某一列或某几列的汇总信息?另外datagrid控件第一列按序号1、2、3…依次显示datagrid是绑定记录模式的,不能添加行.
你可以在表下用LABEL控件模拟汇总列
或者
用VSFLEXGRID控件来代替datagrid控件用sql语句汇总

select id,name,work_num
from mytable
unoin all
select '' as id,'' as name, sum(work_num) as work_num
from mytable
order by id

以上两种方法都可行


主要是程序文字中要插入图片、公式等
使用word里的Document控件的话,要双击输入,反应太慢,还会弄一排菜单出来……..
RichTextBox控件效果不错,也支持插入图片等,唯一可惜的是不支持文字和公式混排时的居中对齐(在WORD里随便输2个字和一幅图,右键——段落——中文版式——对齐方式那选“居中”,你就知道了),和平常的习惯不一样
有更好的办法没有?

谢谢您的指导和关注!

引用 1 楼 xxyj6450 的回复:
可以居中吧?

不好意思,刚才上课去了
不能的,我试过了,在WORD里排好,粘贴进去就又还原了!

自己顶一下

不懂,路过


如题,,如果能指定位置的话当然最好(比如图片的左上角或右下角)

如果不要求 jpg 输出质量的话,有个简单的方法,大概过程

dim diskPicture as picture
set diskpicture = loadpicture(指定jpg文件)
接下来可以把这个图片加载到一个控件上,比如picturebox或者form,是能用print方法的控件
然后直接用 print + 文字定位的方法,将文字输出到指定位置
之后 设置 autoredraw = true 就可以savepicture了

如果要求图像输出质量高的话,可以用gdi+的系列函数直接操作这个jpg,
gdiloadimagefromfile…gdigetimagewidth,gdigetimageheight,drawtext,之后就是gdi的jpg输出api的调用
这些东西可以搜下baidu肯定有资料的

引用 2 楼 PctGL 的回复:

如果不要求 jpg 输出质量的话,有个简单的方法,大概过程

dim diskPicture as picture
set diskpicture = loadpicture(指定jpg文件)
接下来可以把这个图片加载到一个控件上,比如picturebox或者form,是能用print方法的控件
然后直接用 print + 文字定位的方法,将文字输出到指定位置
之后 设置 autoredraw = true 就可以savepicture了

如果要求图像输出质量高的话,可以用gdi+的系列函数直接操作这个jpg,
gdiload…

这个方法是可以,但如果我下面需要将这个新的jpg文件保存下来呢?
也就是原来没有文字的jpg保存成现在有文字的jpg?

再找个BMP转JPG组建

jpg先转成bmp再转成jpg?

jpg在picture上显示后再用Print方法向picture上添加文字,然后保存为bmp,然后转jpg

>之后 设置 autoredraw = true 就可以savepicture了

然后 savepicture picture1.image,文件保存路径
用loadpicture打开的jpg文件也会用jpg格式保存,打开的bmp文件则是用bmp保存的

谢谢楼上的几位哈:)

TO PctGL:SavePicture后是BMP格式,即使后缀名为JPG,仍然是BMP格式。
建议楼主使用GDI+,它支持把图像保存为JPG格式,以前我回答过这类问题,CSDN里有现成的源代码。

嘿嘿.

n….是啊,说错了

savepicture可以存的图形格式是位图、图标、元文件或增强元文件,
则图形将以原始文件同样的格式保存。如果它是 GIF 或 JPEG 文件,则将保存为位图文件。

楼主是想在网页上面显示图片,并在图片上面显示文字?
那用CSS就可以~~~~~~~~~~~


单位内网上的操作,需要在网页上点击查询后在弹出页面上输入一个数据,占确定然后进行操作
我想问的是如何自动点击查询按钮?我这个抄写的代码怎么让他执行?
Private Sub Command1_Click()
    WebBrowser1.Navigate "http://192.168.1.2/"
End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    Dim a
   
    For Each a In WebBrowser1.Document.All
        If a.tagname = "A" Then
            If a.href = "http://192.168.1.2/capture.shtml" Then
                a.Click
            End If
        End If
    Next
End Sub
句子的意思我基本看得明白,但我想问下,第二个怎么让他执行?
还有,弹出页面有几个文本输入框?又应该怎么找出来?
操作后如何知道数据已传输到位或页面已经刷新完毕?


在写一个人员管理的小玩意,希望在LISTVIEW的大图标模式中显示人员大头照,用ImageList控件不能显示真彩图标或图片,而且我需要动态的设置这些图片。请指教。

设置大图标模式,一样的可以加入图片

OK!

问1楼 这个女的是不是94你做梦梦到的那个

引用 4 楼 slowgrace 的回复:
问1楼 这个女的是不是94你做梦梦到的那个

NO.

这个MM是以前同事,声音好听人漂亮.

梦见的那个……..还是不说了罢.


Option Explicit
Const REG_SZ As Long = 1
Const HKEY_LOCAL_MACHINE = &H80000002

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _
    (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
    (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
    (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, _
    ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" _
    (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, _
    lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long
Dim aaa As String

Private Sub Command1_Click()
Dim hKey As Long, hKey1 As Long, hKey2 As Long, ret As Long, ret1 As Long, lenData As Long, typeData As Long
Dim Name As String, name1 As String, name2 As String, s As String, S1 As String
Dim idx As Integer
idx = 0
Name = String(256, Chr(0))
RegCreateKey HKEY_LOCAL_MACHINE, "SystemCurrentControlSetServicesClassNetTrans", hKey
Text1.Text = hKey
Do
ret = RegEnumKey(hKey, idx, Name, Len(Name))
If ret = 0 Then
aaa = Left(Name, InStr(Name, Chr(0)) - 1)
aaa = "SystemCurrentControlSetServicesClassNetTrans" & aaa
ret = RegOpenKey(HKEY_LOCAL_MACHINE, aaa, hKey)因为找不到返回的是2,具体的位置在哪里?
'获得IP地址
If ret = 0 Then
  name1 = "IPAddress"
  name2 = "IPMask"
  ret = RegQueryValueEx(hKey, name1, 0, typeData, ByVal vbNullString, lenData)
  s = String(lenData, Chr(0))
  RegQueryValueEx hKey, name1, 0, typeData, ByVal s, lenData
  If s <> "" Then s = Left(s, InStr(s, Chr(0)) - 1)
  '获得子网掩码
  ret1 = RegQueryValueEx(hKey, name2, 0, typeData, ByVal vbNullString, lenData)
  S1 = String(lenData, Chr(0))
  RegQueryValueEx hKey, name2, 0, typeData, ByVal S1, lenData
  If S1 <> "" Then S1 = Left(S1, InStr(S1, Chr(0)) - 1)
If Val(s) > 0 Then
  Text1.Text = s
  Text2.Text = S1
  Command2.Enabled = True
  Exit Sub
End If
End If
idx = idx + 1
End If
Loop Until ret <> 0
End Sub
Private Sub Command2_Click()
  Dim hKey As Long
    If Text1.Text <> "" Then
        RegCreateKey HKEY_LOCAL_MACHINE, aaa, hKey
'      修改IP地址
        RegSetValueEx hKey, "IPAddress", 0, REG_SZ, ByVal Text1.Text, 13
'      修改子网掩码
        RegSetValueEx hKey, "IPMask", 0, REG_SZ, ByVal Text2.Text, 13
        RegCloseKey hKey
    End If
End Sub

Private Sub Command3_Click()
  End
End Sub
上面是别人的例子
2000、XP环境: 
  HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices{F0053D00-26BB-439E-AAB3-0C0A04BF03B1}ParametersTcpip 
   
  {F0053D00-26BB-439E-AAB3-0C0A04BF03B1}:机器不同可能有所不同,一般在services里的前几项中可以找到

这个是别人的回答
那要怎么样才能编出一个通用的呢?谢谢!


Option Explicit
Const REG_SZ As Long = 1
Const HKEY_LOCAL_MACHINE = &H80000002

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _
    (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
    (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
    (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, _
    ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" _
    (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, _
    lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long
Dim aaa As String

Private Sub Command1_Click()
Dim hKey As Long, hKey1 As Long, hKey2 As Long, ret As Long, ret1 As Long, lenData As Long, typeData As Long
Dim Name As String, name1 As String, name2 As String, s As String, S1 As String
Dim idx As Integer
idx = 0
Name = String(256, Chr(0))
RegCreateKey HKEY_LOCAL_MACHINE, "SystemCurrentControlSetServicesClassNetTrans", hKey
Text1.Text = hKey
Do
ret = RegEnumKey(hKey, idx, Name, Len(Name))
If ret = 0 Then
aaa = Left(Name, InStr(Name, Chr(0)) - 1)
aaa = "SystemCurrentControlSetServicesClassNetTrans" & aaa
ret = RegOpenKey(HKEY_LOCAL_MACHINE, aaa, hKey)因为找不到返回的是2,具体的位置在哪里?
'获得IP地址
If ret = 0 Then
  name1 = "IPAddress"
  name2 = "IPMask"
  ret = RegQueryValueEx(hKey, name1, 0, typeData, ByVal vbNullString, lenData)
  s = String(lenData, Chr(0))
  RegQueryValueEx hKey, name1, 0, typeData, ByVal s, lenData
  If s <> "" Then s = Left(s, InStr(s, Chr(0)) - 1)
  '获得子网掩码
  ret1 = RegQueryValueEx(hKey, name2, 0, typeData, ByVal vbNullString, lenData)
  S1 = String(lenData, Chr(0))
  RegQueryValueEx hKey, name2, 0, typeData, ByVal S1, lenData
  If S1 <> "" Then S1 = Left(S1, InStr(S1, Chr(0)) - 1)
If Val(s) > 0 Then
  Text1.Text = s
  Text2.Text = S1
  Command2.Enabled = True
  Exit Sub
End If
End If
idx = idx + 1
End If
Loop Until ret <> 0
End Sub
Private Sub Command2_Click()
  Dim hKey As Long
    If Text1.Text <> "" Then
        RegCreateKey HKEY_LOCAL_MACHINE, aaa, hKey
'      修改IP地址
        RegSetValueEx hKey, "IPAddress", 0, REG_SZ, ByVal Text1.Text, 13
'      修改子网掩码
        RegSetValueEx hKey, "IPMask", 0, REG_SZ, ByVal Text2.Text, 13
        RegCloseKey hKey
    End If
End Sub

Private Sub Command3_Click()
  End
End Sub
上面是别人的例子
2000、XP环境: 
  HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices{F0053D00-26BB-439E-AAB3-0C0A04BF03B1}ParametersTcpip 
   
  {F0053D00-26BB-439E-AAB3-0C0A04BF03B1}:机器不同可能有所不同,一般在services里的前几项中可以找到

这个是别人的回答
那要怎么样才能编出一个通用的呢?谢谢!