Public Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect" (ByVal hdc As Long, lpRect As RECT) As Long
TO daisy8675(莫依) 我的想法是: 其实我猜WINDOWS搜索窗口中,左边部分是一个FORM,在改变其大小的时候当然会有虚线出现,只是需不需要把我的PICTRUEBOX通过API改变为FORM的形式,让它在我拖动的时候显示虚线呢? 你有何高见?
Option Explicit 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 GWL_STYLE = (-16) Const WS_THICKFRAME = &H40000 Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2 Const SWP_NOZORDER = &H4 Const SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE Const SWP_DRAWFRAME = SWP_FRAMECHANGEDPrivate Sub Form_Load() Picture1.Align = vbAlignLeft SetWindowLong Picture1.hwnd, GWL_STYLE, _ GetWindowLong(Picture1.hwnd, GWL_STYLE) Or WS_THICKFRAME SetWindowPos Picture1.hwnd, hwnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME End Sub
to ColdMooon(月光寒: 基本可以实现了,谢谢,但是那个边框怎么怪怪的?
如果是做分割条,可以 private sub form_resize() picture1.align=0 picture1.move -3,-3,picture1.width,me.scaleheight+6 '或把3换成其他合适的值. end sub 把上,下,左三条边放到form外边.这样看着舒服些.
里面有详细代码。你需要稍微修改控制改变treeview
/////////////還是pic呀,隻是在resize的時候,它的寬度設置得很小。其實有個控件就可以完全完成,寫得不錯
,我看看能否找到
我的想法是:
其实我猜WINDOWS搜索窗口中,左边部分是一个FORM,在改变其大小的时候当然会有虚线出现,只是需不需要把我的PICTRUEBOX通过API改变为FORM的形式,让它在我拖动的时候显示虚线呢?
你有何高见?
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 GWL_STYLE = (-16)
Const WS_THICKFRAME = &H40000
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOZORDER = &H4
Const SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE
Const SWP_DRAWFRAME = SWP_FRAMECHANGEDPrivate Sub Form_Load()
Picture1.Align = vbAlignLeft
SetWindowLong Picture1.hwnd, GWL_STYLE, _
GetWindowLong(Picture1.hwnd, GWL_STYLE) Or WS_THICKFRAME
SetWindowPos Picture1.hwnd, hwnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME
End Sub
基本可以实现了,谢谢,但是那个边框怎么怪怪的?
private sub form_resize()
picture1.align=0
picture1.move -3,-3,picture1.width,me.scaleheight+6
'或把3换成其他合适的值.
end sub
把上,下,左三条边放到form外边.这样看着舒服些.
//////////////
我倒,和api沒有關系,移動是pic,最後的距離是pic定義的。
你說的虛線隻要把pic變小就可以了你是不是說ie下面的虛線??