Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2011, 17:58   #1
Mag1str
 
Регистрация: 24.08.2011
Сообщений: 7
Лампочка Возможно ли убрать заголовок и обводку вокруг UserForm

Здравствуйте.
Помогите пожалуйста.
Необходимо сделать программу с авторским дизайном
Имеется обычная пользовательская форма. Она будет замощена специальным рисунком с дизайном.
Смысл в том что вид ужасно портит само окно Windows. То есть строка заголовка (где кнопки свернуть,развернуть окно и закрыть). И обводка вокруг формы. Если видели интерфейс OS X то знаете, что там вокруг окна нет обводки.
Существует ли возможность избавиться от этого.
Спасибо.
Mag1str вне форума Ответить с цитированием
Старый 24.08.2011, 21:15   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

это конечно не ответ на Ваш вопрос, ответ очень рядом, он у меня был, забыл куда записал

•Для того, чтобы убрать кнопку Закрыть, представляющую собой небольшой крестик, расположенный в правом углу заголовка формы, достаточно скопировать весь нижеприведённый код в модуль нужной формы. А также делает недоступным пункт Close в системном меню, которое отображается при правом клике по заголовку окна
Кусок ниже вставлять вверху формы
Код:
Private Declare Function FindWindow _ 
        Lib "user32.dll" Alias "FindWindowA" ( _ 
        ByVal lpClassName As String, _ 
        ByVal lpWindowName As String) As Long 
Private Declare Function GetWindowLong _ 
        Lib "user32.dll" Alias "GetWindowLongA" ( _ 
        ByVal hWnd As Long, _ 
        ByVal nIndex As Long) As Long 
Private Declare Function SetWindowLong _ 
        Lib "user32.dll" Alias "SetWindowLongA" ( _ 
        ByVal hWnd As Long, _ 
        ByVal nIndex As Long, _ 
        ByVal dwNewLong As Long) As Long 
Кусок ниже вставлять в раздел Initialize
Private Sub UserForm_Initialize() 
    Dim ihWnd As Long, iStyle As Long 

    ihWnd = FindWindow(vbNullString, Me.Caption) 
    iStyle = GetWindowLong(ihWnd, -16&) 
    SetWindowLong ihWnd, -16&, iStyle And Not &H80000 
End Sub
Если найдёте ответ выложите пжл
Ципихович Эндрю вне форума Ответить с цитированием
Старый 24.08.2011, 22:22   #3
Mag1str
 
Регистрация: 24.08.2011
Сообщений: 7
По умолчанию

Ок. Спасибо попробую
Mag1str вне форума Ответить с цитированием
Старый 25.08.2011, 13:48   #4
Mag1str
 
Регистрация: 24.08.2011
Сообщений: 7
По умолчанию

Да... Кнопки убрались а вот заголовок и сама обводка вокруг окна остались...
Mag1str вне форума Ответить с цитированием
Старый 26.08.2011, 04:26   #5
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Код:
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
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_STYLE = (-16)
Private Const WS_BORDER As Long = &H800000
Private Const WS_CAPTION As Long = &HC00000

Public Sub ChangeWindow(f As UserForm)
  Dim hwnd As Long
  Dim retval As Long
  hwnd = FindWindow("ThunderDFrame", f.Caption)
  If hwnd <> 0 Then
    retval = SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) And WS_BORDER)
  End If
  If retval = 0 Then MsgBox "Fail"
End Sub

Private Sub UserForm_Initialize()
  ChangeWindow Me
End Sub
Вот так убирается граница окна с заголовком. В принципе, с помощью API можно и картинку красиво положить в фон, и форму сделать полупрозрачной ну и прочие вкусности. Только стоит ли оно того?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 26.08.2011, 11:12   #6
Mag1str
 
Регистрация: 24.08.2011
Сообщений: 7
По умолчанию

viter.alex
Большое спасибо.
Mag1str вне форума Ответить с цитированием
Старый 05.06.2012, 15:37   #7
bati4eli
 
Регистрация: 02.05.2012
Сообщений: 3
По умолчанию

Такой вопрос..
эта функция реально помогает, но только на windows aero, если установить обычную тему в windows, то обводка окна сохраняется пока не растянешь её.
=(
bati4eli вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать заголовок формы, оставив границы Хамяг Общие вопросы Delphi 13 22.02.2011 02:01
Убрать заголовок у формы tae1980 Microsoft Office Excel 2 26.01.2011 16:13
Убрать заголовок окна WinVista Mikhail Bakurov Windows 7 20.06.2010 18:04
Как изменить стиль гиперссылки? Нужно убрать рамку вокруг картинки. GLB HTML и CSS 5 18.01.2009 19:18
убрать заголовок программы. kuzmich Общие вопросы Delphi 4 26.11.2008 15:41