解决方案 »
- VB6.0如何调用C++封装DLL中的回调函数?
- 打开SQL导出的EXCEL出现好几个工作薄
- VB中如何往这个论坛页面上的编辑器写入信息????????
- 检查一下SQL哪错误?
- 为什么Excel中的内部函数UPPER()在VBA环境中提示没有定义呢?其它部分的函数是可以使用的。
- 关于一个数据加密和数字签名的控件的使用(请帮一下)
- 怎么获取网格中的数据已经更改?(网格中的数据是从Ms SQL数据库加载的?〔急)
- 请问当IE控件显示“该页无法显示”时,如何用程序加以判断
- 关于viewtree 使用
- 我要写一个active控件,它可连接数据库,请问如何才能象ADO数据控件哪样,调出生成odbc连接字符串的对话框。就是咱们从控制面板打开的那个。谢谢。
- vb连接sqlserver取数据的速度问题
- 窗口失去焦点如何不让标题栏重绘成灰色?
SetWindowLong(句柄,GWL_EXSTYLE,WS_EX_TOOLWINDOW)
或
ShowWindow(句柄, SW_HIDE );
哪个有效请自行尝试
setparent的父句柄不能为零,这样不是真正的将其父窗口设为桌面,而对其隐藏任务栏图标的操作也无效了。试了窗口是有效的。想要隐藏掉,必须先取得桌面的正确句柄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 Const GWL_EXSTYLE = (-&H14)
Private Const WS_EX_APPWINDOW As Long = &H40000
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_HIDE = 0
Private Const SW_SHOW = 5
Private Declare Function GetDesktopWindow Lib "user32" () As Long
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 LongPrivate Sub ShowHideTaskBarButton(ByVal hWnd As Long, ByVal fShow As Boolean)
Dim lExStyle As Long
lExStyle = GetWindowLong(hWnd, GWL_EXSTYLE)
lExStyle = IIf(fShow, lExStyle Or WS_EX_APPWINDOW, lExStyle And Not WS_EX_APPWINDOW)
ShowWindow hWnd, SW_HIDE
lExStyle = SetWindowLong(hWnd, GWL_EXSTYLE, lExStyle)
ShowWindow hWnd, SW_SHOW
End SubPrivate Sub cmdHideInTaskBar_Click()
Dim i As Long, j As Longj = FindWindowEx(0&, 0&, "Progman", vbNullString)
j = FindWindowEx(j, 0&, "SHELLDLL_DefView", vbNullString)
j = FindWindowEx(j, 0&, "SysListView32", vbNullString)
i = Picture1.hWnd
SetParent Picture1.hWnd, j
ShowHideTaskBarButton i, True
End Sub
Private Const HTCAPTION = 2
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As LongPrivate 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
Private Const HWND_TOPMOST& = -1
Private Const SWP_NOSIZE& = &H1
Private Const SWP_NOMOVE& = &H2Private Sub Form_Load()
SetWindowPos Me.Hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Call ReleaseCapture
Call PostMessage(Hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
End If
End Sub
http://topic.csdn.net/u/20090716/19/772419b0-b147-45d7-a81b-6085de55926c.html
http://topic.csdn.net/u/20090715/21/da4a07db-15ea-4fef-a110-0dc9be9f3e6a.html
http://topic.csdn.net/u/20090714/09/5f9e994f-5f79-4aaa-b7b9-5b6543632341.html
http://topic.csdn.net/u/20090714/09/aff8197b-ae7a-40ad-bbd8-38f05ffd6c83.html
经过一星期的奋战终于解决。用这种原理开发的ShayooMenu.ocx,vista日历控件,combobox控件,listbox控件和其他ocx界面及测试程序如下:
测试程序for VB 6.0 点击下载
欢迎交流 [email protected],欢迎开发非Microsoft自带控件.从底层和原理关注软件开发.
1.vistaShayooForm
2.vistaShayooListBox
3.vistaShayooMenu
4.vistaShayooTextBox
5.vistaShayooStatusBar
6.vistaShayooTooltip
7.vistaShayooCalendar
8.vistaShayooScrollBar
9.vistaShayooCheckBox
10.vistaShayooRadio
11.vistaShayooGrid
12.vistaShayooButton
13.vistaShayooMdiTabs
14.vistaShayooFrame
15.vistaShayooToolBar
16.vistaShayooRibbon
17.vistaShayooListView
18.vistaShayooMsgbox
19.vistaShayooLed
20.vistaShayooDock