Private Sub PrintTxt(txt As String, ConWidth As Long, LeftPosition As Long)
Dim str As String
Dim str1 As String
Dim len1 As Long
str = txt
len1 = ConWidth
Do While Len(str) > 0
str1 = str
Do While len1 > 0 And Printer.TextWidth(str1) - ConWid > len1
str1 = Left(str1, Len(str1) - 1)
Loop
Printer.CurrentX = LeftPosition
Printer.Print str1 '打印
If Len(str1) = 0 Then Exit Do '不匹配
str = Mid(str, Len(str1) + 1) '截断!
Loop
End Sub
Private Sub ......
VB中调用MSN 6.2 API函数
了解这方面内容的起因是早上有位朋友让我看一段关于MSN开发程序,现在无法运行,我打开工程发现是针对4.7编写的,而他的计算机安装的6,2,因为我也用6.2所以我在VB中查看了一下,发现是缺少Messenger Type Library。但是多了Messenger API Type Library,可能是做为Messenger Type Library的替代,但是发现它的功能不如以前的Messenger Type Library 全面,起码我现在就发现它不能修改本地的MyFriendlyName,不明白为什么把它弄成只读的,MyStatus是可写。
下面简单用VB距离说明怎么调用它:
首先当然是引用对象Messenger API Type Library了。
然后声明一个对象MessengerAPI.Messenger:
Private WithEvents oMSN As MessengerAPI.Messenger
我们需要的东西都在这里边,简单介绍几个:
MyContacts:IMessengerContacts 对象
MyFriendlyName: 当前的昵称
MyGroups: IMessengerGroupss对象
MyPhoneNumber:返回电话号码
MyProperty:现在没有使用
MyServiceId :返回Service id应该是{9b017612-c9f1-11d2-8d9f-0000f875c541}]
MyServiceName:返回Service name应该是 .NET Messenge ......
可以把普通的Java程序做成真正的exe,也就是单一个exe就可以在没有安装JVM的机器上运行。这样的工具常见的有JET和gcj.前者是收费的,而且做出来的exe还是需要一堆dll。推荐使用gcj.他有windows和Linux版,直接下载zip包,不需要安装,里面有不少例子,一些build的批处理文件。从原理来说gcj自己实现了JVM规范,也就是你编写一个HelloWorld.java,其中的main方法为System.out.println("foo");
当使用gcj把它做成exe(大约2M),运行这个exe时,会启动里面的一个小型jvm,在这上面跑HelloWorld。
其实,把Java做成纯exe实在是吃力不讨好,有很多限制,文件又大。
我比较倾向另几种做法:
. 使用InstallAnywhere等工具,制作一个exe的安装包
用户可以选择使用他机器上的JRE或是这个安装包内的JRE来运行程序
这是很常见的一种做法,如JBuilder就是这么做的。
这样的好处是不要求对方机器上装有JRE,而且你原来的程序不需要任何改动。
InstallAnywhere中一个压缩的JRE大概是8M。
. 制作成可执行的jar,也就是在META-INF的MANIFEST文件制定Main-Class
可以通过命令行java -jar jarfile.jar来执行,windows默认的把*.jar使用javaw -jar打开,所以有些机器上可以直接双击jar ......
利用API把一个控件绑定到另一个控件里
利用API把一个控件绑定到另一个控件里。不过要控件有HWND属性。例如:
New_OldParent& = SetParent(Me.Text_txt.hWnd, Me.picture_bj.hWnd)
把txt控件添加到picture控件里使用。
注:使用这种方法需要注意:使用SetParent之后,子控件的位置将因为父窗口的改变而改变。 ......
去年曾写过一篇博文,名称叫《用VB无窗口透明Usercontrol编写透明浮动按钮》,该文有一个观点是错误的,即透明无窗口Usercontrol不支持设计时点选。其实,通过在UserControl_HitTest过程里加入HitResult = vbHitResultHit语句,就可以实现设计时的点选了,为此,修改代码如下:
'* ************************************************************** *
'* 程序名称:Button.ctl
'* 程序功能:透明浮动按扭
'* 作者:lyserver
'* 联系方式:http://blog.csdn.net/lyserver
'* 说明:解决了FloatButton版本设计时不能点选的BUG
'* ************************************************************** *
Option Explicit
'======================================================================
' API 声明
'======================================================================
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function SetRect Lib "user32" (lpRect As RECT, ......
最近在使用和研究OpenGL绘图,遇到不少问题。网上查阅资料的时候,发现大部分资料都是C语言,和C++写的,VB这方面的资料太少了,VB6.0的就更少,现在都流行dotnet。自己买了本OpenGL书是也是C语言版的。这个博客也开了2年多了,都没写点东东上来。趁晚上睡不着,上来写点。
一、什么是OpenGL?
OpenGL是Open Graphics Lib的缩写,是一套三维图形处理库,也是该领域的工业标准。计算机三维图形是指将用数据描述的三维空间通过计算转换成二维图像并显示或打印出来的技术。
OpenGL被设计成独立于硬件,独立于窗口系统的,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。
OpenGL是一组绘图命令的API集合。利用这些API能够方便地描述二维和三维几何物体,并控制这些物体按某种方式绘制到显示缓冲区中。OpenGL的API集提供了物体描述、平移、旋转、缩放、光照、纹理、材质、象素、位图、文字、交互以及提高显示性能等方面的功能,基本涵盖了开发二、三维图形程序所需的各个方面。
二、 OpenGL特点
①   ......