Страницы: 1
RSS
Как убрать заголовок на userform?
 
подскажите пожалуйста.
 
Оставить пустым свойство Caption
Согласие есть продукт при полном непротивлении сторон
 
не совсем то.не название заголовка,а всю панель.
 
а можно поинтересоваться зачем? Если хотите запретить закрытие крестиком - можно без этого обойтись. Если же цели иные - то только через API:
Код
Option Explicit

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
Private Declare Function DrawMenuBar Lib "user32.dll" (ByVal hWnd As Long) As Long

Private Sub UserForm_Initialize()
    Dim lhWnd As Long, lStyle As Long

    lhWnd = FindWindow(vbNullString, Me.Caption)
    lStyle = GetWindowLong(lhWnd, -16&)
    SetWindowLong lhWnd, -16&, lStyle And Not &HC00000
    DrawMenuBar lhWnd
End Sub


просто вставьте это в модуль формы
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
спасибо попробую.хочу запретить перемещение и закрытие формы.
 
Да для 32 битных систем все работает, а как реализовать для 64 битных?
При запуске сразу ругается на "Private Declare Function FindWindow " и далее на все строки.
 
Alex6656, воспользуйтесь поиском. Про совместимость с х64 ранее поднимался вопрос.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
JayBhagavan написал: воспользуйтесь поиском. Про совместимость с х64 ранее поднимался вопрос.
Воспользовался, но результата ноль.
При нажатии (на листе в любом месте) должна появляться форма...в 32 битах все "ок", а как реализовать в 64 битах?

P.s.   Прошу прощения за картинку(в файле) под рукой маленького размера ничего не оказалось..
 
Кто ищет...

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Эту тему я видел пробовал во всевозможных схемах сразу ругается на :
Declare PtrSafe Function MyMathFunc Lib "User32" (ByVal N As LongLong) As LongLong
удаляю ее ругается на следующую...пока всю программку не удалил, тогда все ок, но тогда и кода нет)

Итог -  нет кода, нет проблем)
Вставил PtrSafe в старую функцию ругань прекратилась, но начал ругаться на "FindWindow" в строке - lhWnd = FindWindow(vbNullString, Me.Caption)
Изменено: Alex6656 - 29.09.2015 22:56:53
 
У меня нет слов - одни междометия. Зачем удалять??? А добавить после всех слов Declare фразу PtrSafe не пробовали?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
JayBhagavan написал: PtrSafe не пробовали?
Пробовали...но до кучи изменил Long на LongLong...исправил обратно...теперь все заработало ...Спасибо междометия помогают как ни когда))
Изменено: Alex6656 - 29.09.2015 22:57:02
 
Alex6656, я просто добавил PtrSafe и Ваш файл без вопросов открывается и макрос отрабатывает также без вопросов.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Все спасибо разобрался...(моя дурная голова мне покоя не дает) рабочий вариант выложил сверху.
 
Alex6656, хвала небесам! :)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
Страницы: 1
Наверх