利用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特点
①   ......
要想在VB6.0中使用OpenGL绘图,必须先下载一个SDK,名字叫vbogl.tlb。我用的版本是2.1,这个月要出3.0版本的了。
下载该文件后,直接在VB6.0“工程”-“引用”里面引用
1、在form中加入一个PictureBox控件
2、要在Windows里面使用OpenGL,必须先进行像素格式设置,函数代码如下
Dim hRC As Long’全局变量
'启用OGL
Sub EnableOpenGL(ghDC As Long)
On Error GoTo Err
Dim pfd As PIXELFORMATDESCRIPTOR 'pfd像素格式设置.
ZeroMemory pfd, Len(pfd)
pfd.nSize = Len(pfd) '大小
pfd.nVersion = 1 '版本
&nbs ......
Public Sub DGToExcel(DataGrid1 As DataGrid, Optional ProgressBar1 As ProgressBar, Optional ByVal intFirst As Integer, Optional ByVal intLast As Integer, Optional strTitle As String)
'--将DataGrid导出至Excel,ProgressBar1为进度条,intFirst为从哪一列开始打印,intLast为打印到哪一列
On Error Resume Next
Dim I As Long
Dim J As Integer
Dim K As Integer
Dim sLast As String
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Name = "查询结果"
xlApp.Visible = False '--先隐藏
ProgressBar1.Value = 0
Screen.MousePointer = 11
ProgressBar1.Max = DataGrid ......
之前碰到一个问题,VB中向一个C++写的DLL中注册一个Callback,C++在调用这个Callback时有些问题,具体问题描述和下面这个帖子中的情况是一样的: http://topic.csdn.net/t/20051104/09/4370840.html
经过尝试以后发现,在VB中写的回调函数必须是用Function关键字,并且,必须要设置返回值,如下:
Public Function Callback () As Long
’TODO: Here
Callback = 0
End Function
如果这个回调中没有声明返回值,并且没有Callback = 0这个情况,就会出现上述帖子中的问题. ......