如何在程序运行期间对上面的控件进行象在设计期间的操作(移动,全选,改变大小等等),请解答详细些

解决方案 »

  1.   

    到 www.dapha.net 找找看以前看见有的
      

  2.   

    建议学一下MFC
    MFC类库中CRectTracker 是专门作这种事的。要学VC
      

  3.   

    绝大多数VB控件都支持拖放。你可以将控件的DragMode设置为自动,这样用户就可以拖动,然后加入如下代码: 
        Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) 
         Source.Move X, Y 
        End Sub 
        这样当用户放下控件时,控件就可以移动到那里。 
        也可以将控件的DragMode设置为手动(默认),使用Drag方法开始拖动操作。
      

  4.   

    在运行时刻创建可改变尺寸的控件谭翁
    我们可以将许多不同的控件,例如文本框控件,添加到Visual Basic的窗体上。在设计期间,可以调整控件的大小和位置。文本介绍如何从一个Visual Basic应用程序中,在运行时刻修改这些控件的尺寸。运行时刻重设控件的尺寸当设计Visual Basic应用程序时,可以简单地按照需要将控件添加到窗体上,例如,文本框控件为程序提供了一个最小功能的字处理程序的特性。控件的尺寸必须在设计期间设置。然而,通过使用两个Windows API函数:GetWindowLong以及SetWindowLong,我们可以实现在运行时刻改变一个控件,例如一个文本框控件的大小。当将一个控件,例如一个文本框控件添加到Visual Basic应用程序中时,本质上是创建了一个新的窗口。每个在Windows操作系统中被创建的窗口都具有某种与之相关的风格属性,例如,一个文本框控件可能具有ES_MULTILINE的窗口风格。这告诉Windows该控件是一个多行编辑控件。通常,一个文本框控件不能在运行时刻被重设大小。然而,通过改变控件的风格属性,用户将能够在程序运行期间调整文本框的物理尺寸。这可以通过调用GetWindowLong和SetWindowLong函数来完成。首先,调用GetWindowLong函数以提取该文本框控件当前的窗口风格属性。其次,可以使用OR位操作符为该文本框控件设置WS_THICKFRAME属性。一个具有WS_THICKFRAME属性的窗口会在它的边界绘制一个粗框。可以使用该边框来改变窗口的大小。然后运行SetWindowLong函数,它告诉Windows修改文本框控件的风格属性。最后,固定文本框最新的尺寸,以便它的新位置和尺寸被注册在其下的窗体中,可以调用SetWindowPos函数来完成这项工作。样例程序该程序显示了在Visual Basic中,如何在运行时刻创建一个可变大小的文本框控件。1.在Visual Basic中开始一个新的工程,采用缺省的方法建立Form1。2.将如下常量和声明语句添加到Form1的通用声明部分中(注意每个声明语句需要被书写在一行内):Private Declare Function GetWindowLong Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer) As Long Private Declare Function SetWindowLong Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Long Private Declare Sub SetWindowPos Lib "User" (ByVal hWnd As Integer, ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal CX As Integer, ByVal CY As Integer, ByVal wFlags As Integer)  Const SWP_NOSIZE = &H1 Const SWP_NOZORDER = &H4 Const SWP_NOMOVE = &H2 Const SWP_DRAWFRAME = &H20 Const GWL_STYLE = (-16) Const WS_THICKFRAME = &H40000 对于32位环境下使用Visual Basic5.0的用户,需要将如下声明语句添加到Form1的通用声明部分中(注意每个声明语句需要被书写在一行内): Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long  Const SWP_NOSIZE = &H1 Const SWP_NOZORDER = &H4 Const SWP_NOMOVE = &H2 Const SWP_DRAWFRAME = &H20 Const GWL_STYLE = (-16) Const WS_THICKFRAME = &H40000 3.在Form1上添加一个命令按钮控件,采用缺省的方法建立Comand1。将它的Caption属性设置为“改变文本框控件大小”.将如下代码添加到Command1的单击事件中:Private Sub Command1_Click() ResizeControl Text1, Form1 End Sub 5.在Form1上添加一个文本框控件,采用缺省的方法建立Text1。6.创建一个名为ResizeControl的新函数,将如下代码添加到该函数中: Sub ResizeControl(ControlName As Control, FormName As Form) Dim NewStyle As Long NewStyle = GetWindowLong(ControlName.hWnd, GWL_STYLE) NewStyle = NewStyle Or WS_THICKFRAME NewStyle = SetWindowLong(Text1.hWnd, GWL_STYLE, NewStyle) SetWindowPos ControlName.hWnd, FormName.hWnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME End Sub  按下F5来运行该样例程序,单击命令按钮,可以将文本框的大小按照需要进行改变。
     
      

  5.   

    可以在运行时设置.top与.left来移动控件