Home |
Search |
Today's Posts |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
This should do it.
Option Explicit Private Declare Function GetWindowRect Lib "User32" ( _ ByVal hWnd As Long, _ lpRect As RECT) As Long Private Declare Function FindWindow Lib "User32" _ Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) 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 GetWindowLong Lib "User32" _ Alias "GetWindowLongA" ( _ ByVal hWnd As Long, _ ByVal nIndex As Long) As Long '// Used for moving Captionless form 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 Private Const GWL_STYLE = (-16) Private Const WS_CAPTION = &HC00000 ' WS_BORDER O WS_DLGFRAME Private Const WS_SYSMENU = &H80000 Private Const SWP_FRAMECHANGED = &H20 ' The frame changed: sen WM_NCCALCSIZE Private Const SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering Private Const SWP_NOREDRAW = &H8 Private Const SWP_NOREPOSITION = SWP_NOOWNERZORDER Private Const SWP_NOSIZE = &H1 Private Const SWP_NOZORDER = &H4 Private Type POINTAPI X As Long Y As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Sub UserForm_Activate() Dim lStyle As Long Dim tR As RECT Dim FrmWndh As Long '// Get Forms window handle set Variable NOW! FrmWndh = FindWindow(vbNullString, Me.Caption) '// Get the window's position: GetWindowRect FrmWndh, tR '// Modify whether title bar will be visible: lStyle = GetWindowLong(FrmWndh, GWL_STYLE) lStyle = lStyle And Not WS_SYSMENU lStyle = lStyle And Not WS_CAPTION SetWindowLong FrmWndh, GWL_STYLE, lStyle '// Ensure the style takes and make the window the '// same size, regardless that the title bar '// is now a different size: SetWindowPos FrmWndh, 0, tR.Left, tR.Top, tR.Right - tR.Left, tR.Botto - tR.Top, _ SWP_NOREPOSITION Or SWP_NOZORDER Or SWP_FRAMECHANGED Me.Repaint End Su -- Message posted from http://www.ExcelForum.com |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Form Caption Logo, How? | Excel Discussion (Misc queries) | |||
Form Caption Logo, How? | Excel Worksheet Functions | |||
User form - Picture in the caption? | Excel Programming | |||
Excel VBA - User form caption problem | Excel Programming |