有图标能够点击实现最小、最大化?------关键是这???
用过Delphi的朋友可能都知道,以上说的功能在Delphi里都有的!!!
解决方案 »
- 急~~~ VB 的App.Path问题,图片路径中有如 \program file\ 这样的目录,它只取得\program 怎么办啊?
- 运行一个存储过程后将所得的记录集设置到datagrid时出错怎样解决?
- 高分白送!紧急求救!VB数据库!
- 显示数据的问题
- 原创烂贴:使用API补VB中的一个不足
- 请问VB里有树形目录的控件可以用吗?
- 如何让shell函数调用的dos程序找到当前文件夹?
- 菜鸟的两个问题,全部解决给400分,都是关于拖拽的,特急!!!
- 如何在vb中调用".exe"文件--再现等待
- 关于图象处理
- 我来发问:如果写带参数的VB程序,如果调用它????
- 春节快到了,祝大家快乐,我要回家了,真有点舍不得大家
to : ferrytang(水油) 仅仅showintaskbar=true 是不行的!要用下面的代码!Private Sub Form_Load()
ChangeWindowStyle Me.hwnd
End SubPublic Sub ChangeWindowStyle(ByVal hwnd As Long)
'
Dim oldStyle As Long
oldStyle = GetWindowLong(hwnd, GWL_STYLE)
oldStyle = oldStyle Or WS_SYSMENU
oldStyle = oldStyle Or WS_MINIMIZEBOX
SetWindowLong hwnd, GWL_STYLE, oldStyle
End SubPrivate 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 LongPrivate Const GWL_EXSTYLE = (-20)
Private Const GWL_HINSTANCE = (-6)
Private Const GWL_HWNDPARENT = (-8)
Private Const GWL_ID = (-12)
Private Const GWL_USERDATA = (-21)
Private Const GWL_WNDPROC = (-4)
Private Const GWL_STYLE = (-16)Private Const WS_ACTIVECAPTION = &H1
Private Const WS_BORDER = &H800000
Private Const WS_CAPTION = &HC00000 ' WS_BORDER Or WS_DLGFRAME
Private Const WS_CHILD = &H40000000
Private Const WS_CHILDWINDOW = (WS_CHILD)
Private Const WS_CLIPCHILDREN = &H2000000
Private Const WS_CLIPSIBLINGS = &H4000000
Private Const WS_DISABLED = &H8000000
Private Const WS_DLGFRAME = &H400000
Private Const WS_GROUP = &H20000
Private Const WS_HSCROLL = &H100000
Private Const WS_MAXIMIZE = &H1000000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZE = &H20000000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_OVERLAPPED = &H0&
Private Const WS_POPUP = &H80000000
Private Const WS_SYSMENU = &H80000
Private Const WS_TABSTOP = &H10000
Private Const WS_THICKFRAME = &H40000
Private Const WS_TILED = WS_OVERLAPPED
Private Const WS_VISIBLE = &H10000000
Private Const WS_VSCROLL = &H200000
Private Const WS_GT = (WS_GROUP Or WS_TABSTOP)
Private Const WS_ICONIC = WS_MINIMIZE
Private Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
Private Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
Private Const WS_SIZEBOX = WS_THICKFRAME
Private Const WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
Private Const WS_EX_ACCEPTFILES = &H10&
Private Const WS_EX_APPWINDOW = &H40000
Private Const WS_EX_CLIENTEDGE = &H200&
Private Const WS_EX_CONTEXTHELP = &H400&
Private Const WS_EX_CONTROLPARENT = &H10000
Private Const WS_EX_LAYERED = &H80000
Private Const WS_EX_DLGMODALFRAME = &H1&
Private Const WS_EX_LAYOUTRTL = &H400000
Private Const WS_EX_LEFT = &H0&
Private Const WS_EX_LEFTSCROLLBAR = &H4000&
Private Const WS_EX_LTRREADING = &H0&
Private Const WS_EX_MDICHILD = &H40&
Private Const WS_EX_NOACTIVATE = &H8000000
Private Const WS_EX_NOINHERITLAYOUT = &H100000
Private Const WS_EX_NOPARENTNOTIFY = &H4&
Private Const WS_EX_RIGHT = &H1000&
Private Const WS_EX_RIGHTSCROLLBAR = &H0&
Private Const WS_EX_RTLREADING = &H2000&
Private Const WS_EX_STATICEDGE = &H20000
Private Const WS_EX_TOOLWINDOW = &H80&
Private Const WS_EX_TOPMOST = &H8&
Private Const WS_EX_TRANSPARENT = &H20&
Private Const WS_EX_WINDOWEDGE = &H100&
Private Const WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_CLIENTEDGE)
Private Const WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_TOOLWINDOW Or WS_EX_TOPMOST)
你的代码我试了!
只能设置图标、
不能点击实现最小、最大化???
BorderStyle属性不用动,还是sizablecontrolbox=false
caption=""就行了!
你没有理解题意!!!!!!To :uguess(uguess)
没有办法像正常窗体一样停泊吗?
而且,关闭按钮好象也没用!
我的方法确实可以,只要去掉标题栏里的文字、图标和控件(最大、最小、关闭按钮),标题栏就不显示了,但是窗体的行为还是跟borderstyle设置的一样,运行后任务栏会有对应窗体的停泊按钮,单击按钮可以实现窗体的最大、最小化
我要结帖子啦!uguess(uguess) 你的方法还算是符合题意的。
不过我相信一定可以实现象正常窗体那样的!!!
只是还没有找到而已!
不要标题栏,不等于不要Caption。
你的方法我又试了一遍,还是不行!
看!!!
第一步,先将BorderStyle设成NONE
第二步,将窗口的ShowInTaskbar 设成Ture
这样就可以了
这时只要再将它设回来就可了:)你的程序就重新出现在标题栏里。
你可以做三个按钮,分别为CMDCLOSE,CMDMIN,CMDMAX
然后这样
Private Sub CMDMIN_Click()
Form1.WindowState = 1 '最小化
End Sub
Private Sub CMDCLOSE_Click()
Unload Me '关闭
End Sub
Private CMDMAX_Click()
Form1.WindowState = 2 '最大化
End Sub
你没有明白我的意思!
是这样的!
使该窗口在任务栏上有一个停泊按钮这没有问题!
现在是
左键点击一下该停泊按钮使窗体缩小到任务栏上,
左键再点击一下该停泊按钮又使窗体恢复原来的大小!(不是最大化)
所有操作都在任务栏的这个停泊按钮上!这样解释清楚了吗?
各位高手再看一看?我请问你那三个按钮放在什么地方???
我根本就不需要那三个按钮?
BorderStyle设成NONE这是不变的!
停泊按钮是在任务栏上的那个按钮!
象你那样实现我懂!!!
你的代码运行后会出现什么效果,我怎么运行后什么都没有啊!
caption=""
borderstyle=2
TO:jackjack() 这么一来,你的问题就可以完全解决了,不用那么麻烦吧
声明:1、用我的那段代码,需要:borderstyle=0 ;showintaskbar=true ;ICON 不为空。
2、除了“关闭”无效外,其余完全和一般的窗体效果相同!
我的问题很清楚那就是:: jackjack() (2002-1-17 9:47:01) 得0分
是这样的!
使该窗口在任务栏上有一个停泊按钮这没有问题!
现在是
左键点击一下该停泊按钮使窗体缩小到任务栏上,
左键再点击一下该停泊按钮又使窗体恢复原来的大小!(不是最大化)
所有操作都在任务栏的这个停泊按钮上!这样解释清楚了吗?
各位高手再看一看?
: jackjack() 完全符合你的要求!
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000Private Sub Form_Load()
Dim lStyle As Long
lStyle = GetWindowLong(hwnd, GWL_STYLE) Or WS_SYSMENU
SetWindowLong hwnd, GWL_STYLE, lStyle
End Sub
不完全符合我的要求!
你可以试一下: 左键点击一下该窗体的停泊按钮时,
窗体根本没法缩小到任务栏上!!!就这一点!!! 是真的!!!
我在,我不知道你是如何写的,我这完全实现了你的要求!VB6+Win2000
窗体根本没法缩小到任务栏上!!!就这一点!!!
“这一点” 在我这确实不行啊!
你写的代码Copy,属性照设! 我的是VB6+Win98(都是简体中文版)
不骗你!
2、除了“关闭”无效外,其余完全和一般的窗体效果相同!
3、如果你还不行,留EMAIL,我把我的可用的代码发给你!
你的代码没有任何问题,在2000下我测试过可以!
在98下就不能点击缩小!确实这样!好吧!我把贴子结了吧!
谢谢了!