如何在程序中设定combo的style值

sym1978 2003-10-04 09:36:15
在编程中由于定义
combobox值,如何在编程中设定它的style值
...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodname008 2003-10-04
  • 打赏
  • 举报
回复
如果必要的话在显示hEdit时可以把其中的文本先清掉.
goodname008 2003-10-04
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Dim hEdit As Long ' Combo中的Edit的窗口句柄

Private Sub Command1_Click()
' 0--2
ShowWindow hEdit, 0
End Sub

Private Sub Command2_Click()
' 2--0
ShowWindow hEdit, 5
End Sub

Private Sub Form_Load()
hEdit = FindWindowEx(Combo1.hwnd, 0&, "Edit", vbNullString) ' 获得窗口句柄
End Sub
pigpag 2003-10-04
  • 打赏
  • 举报
回复
2--0怎么办?呵呵

还是放两个Combo吧,以便用Visible切换。

如果嫌调用麻烦,可以用对象“指针”:
Private ptrCombo As Object

Private Sub Toggle
If xxx Then
Set ptrCombo=Combo1
else
Set ptrCombo=Combo2
End if

调用时只要认准ptrCombo即可
goodname008 2003-10-04
  • 打赏
  • 举报
回复
' 实现 0--2 的转换

Option Explicit
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long

Private Sub Command1_Click()
Dim hEdit As Long ' Combo中的Edit的窗口句柄
hEdit = FindWindowEx(Combo1.hwnd, 0&, "Edit", vbNullString) ' 获得窗口句柄
DestroyWindow hEdit
End Sub


其它的可以试试用API的SendMessage向它发消息达到目的。
常量中以CB_打头的是关于Combo的。
具体的可以查阅MSDN。
aha99 2003-10-04
  • 打赏
  • 举报
回复
Returns or sets a value indicating the display type and behavior of the control. Read only at run time.

在运行时,是只读的。你可以用几个不同style的控件,内容相同,用条件控制他们的visible。
pigpag 2003-10-04
  • 打赏
  • 举报
回复
用ShowWindow还是能够接受的。DestroyWindow就不可逆了

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧