VB程序员博客

VB程序开发

如果在窗体上放置一个文本输入框,放置一个按钮,并将按钮default属性设置为True,那么在文本输入框获是焦点时输入Enter键,回车,自动相当于点击按钮。
比如:
Private Sub Command1_Click()
  MsgBox Text1.Text
End Sub
当我在TextBox1中输入“ABC”时,输入回车,会弹出对话框“ABC”

但是当我用另一段程序来模拟这个动作时:
  Text1.Text = Text1.Text & vbCrLf
却不会弹出对话框,模拟不出这样的效果。问题出在什么地方?

或者:
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_CHAR = &H102

Private Sub Command2_Click()
  PostMessage Me.hwnd, WM_CHAR, 13, 1
End Sub

直接在同一个窗体中向窗体发送 回车符 也不能模拟出这个过程

<
终于搞明白了default=true后,响应的是key_down事件,把WM_CHAR改为WM_KEYDOWN就OK了
PostMessage Me.hwnd, WM_KEYDOWN, 13, 1

WM_CHAR消息–> Key_Press事件 PostMessage1 Me.hWnd, &H100, 13, 0

&H100 常数名是是什么 忘却鸟,绝对管用就是


我发现Change 和 Scroll事件都只以返回滚动条值变化后的Value,但如何取得其每次变化前的value呢?把变化的数据存下来,下次用的时候不就是变化前的值了吗这个好像真的只能像楼上(1楼)说的那样做,我是没发现过还有别的什么特别的做法!

控件本身就有这个制约,好像没什么别的更巧妙的办法了!
<
click看是什么控件了。if oldValue<> Scroll.Value then
  if oldValue-Scroll.Value >0 then
  debug.print "减小了"
  else
  debug.print "增大了"
  end if
  oldValue= Scroll.Value
end if<
<
。。。。。。不光是滚动条,很多控件内容都是这样。<
<


目的是想替换输入框中某些字符,用户点击提交时做判断然后替换修改

如何完成?给个思路用自己的代码验证,如果正确,执行提交,如果不正确,则修改后再执行提交,你想在提交的网页代码里,去验证,就要改变网页的源代码,比如加上一段VBsprit,不容易也没必要,—-个人看法,不一定对!先把webbrowser的代码读出来,用字符串函数找到指定的INPUT类型的VALUE值,进行修改,然后再重新对输入内容完整填写


目的是想替换输入框中某些字符,用户点击提交时做判断然后替换修改

如何完成?给个思路用自己的代码验证,如果正确,执行提交,如果不正确,则修改后再执行提交,你想在提交的网页代码里,去验证,就要改变网页的源代码,比如加上一段VBsprit,不容易也没必要,—-个人看法,不一定对!先把webbrowser的代码读出来,用字符串函数找到指定的INPUT类型的VALUE值,进行修改,然后再重新对输入内容完整填写


请教各位高手,如何使用图片按钮使程序更美观,当鼠标聚焦图片按钮时显示浮起是彩色状态,失去焦点时显示正常灰色状态,请给点思路?最好能够详细点搜索 网上有好的图片按钮控件能否不用第三方控件实现,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就可以~~~~~~~~~~~


专题:

栏目: