Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
56 / 56 / 26
Регистрация: 13.11.2013
Сообщений: 234
Записей в блоге: 1

Как сделать крестик неактивным в заголовке формы

04.08.2014, 01:51. Показов 3780. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как можно выключить крестик на форме ?.Вот именно выключить а не свойством controlBox и не событием formClosing(и рисовать в picturebox тоже не предлагать).
Я пробовал искать на эту тему и нашёл только код на c++ http://netcode.ru/cpp/?artID=26 Вообщем помогите мне перевести код или же напишите сами
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.08.2014, 01:51
Ответы с готовыми решениями:

Как сделать неактивным "крестик" в верхнем правом углу, закрывающий программу
Как сделать неактивным "крестик" в верхнем правом углу, закрывающий программу? Не убрать совсем,а просто сделать неактивным.

Как убрать кнопку закрытия (крестик) в заголовке формы
Добрый день. Нужно либо деактивировать кнопку на форме в верхнем правом углу (закрыть/выйти из формы), либо вооще убрать эту кнопку....

Как сделать крестик закрытия программы неактивным
В некоторых моментах, нужно сделать кнопку закрытие программы неактивной. При этом оставить системное меню (не убирать его совсем), что...

4
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
04.08.2014, 02:05
pavelDev, это пробовали?
0
56 / 56 / 26
Регистрация: 13.11.2013
Сообщений: 234
Записей в блоге: 1
04.08.2014, 02:13  [ТС]
rattrapper, хм,что то не совсем понятный код я думал через winApi можно но в любом случае спасибо за ответ завтра рассмотрю код
0
Заблокирован
04.08.2014, 02:27
Лучший ответ Сообщение было отмечено pavelDev как решение

Решение

Вообщем помогите мне перевести код
В полной мере тот код нереально перевести.
Перевести можно код, использующий только WinAPI - стандартные библиотеки винды. Любое приложение на любом языке работает с WinAPI, только посредством некой оболочки, как-то Winforms. Следовательно можно и напрямую без оболочки.
Но этот код использует еще и MFC - это набор левых библиотек, доступных только на C/C++.

Однако, MFC тоже основано на WinAPI. И ближе к WinAPI, чем Winforms. Поэтому многим функциям MFC можно найти аналог в WinAPI.
Из того кода я погуглил
GetSystemMenu
и
EnableMenuItem
Эти функции есть и в WinAPI, MFC просто ООП-оболочка для защиты от спагетти-кода и некоторого удобства.
То же и с константами SC_CLOSE, MF_BYCOMMAND, MF_GRAYED. В MFC вообще особых констант нет, все равно что в Winforms. ООП не принято с ними сочетать

А зная, какие функции и константы WinAPI надо использовать, можно и код под Winforms написать уже
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System.Runtime.InteropServices; // наверх, к прочим using
...
// это все внутри класса формы
 
// константы WinAPI
// значения их найдены в гугле
const int SC_CLOSE = 0xF060;
const int MF_GRAYED = 0x1;
const long MF_BYCOMMAND = 0x00000000L;
 
// импорт функций WinAPI
[DllImport("user32.dll")]
static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
 
[DllImport("user32.dll")]
static extern bool EnableMenuItem(IntPtr hMenu, uint uIDEnableItem,
    uint uEnable);
...
// это в коде
IntPtr hMenu = GetSystemMenu(this.Handle, false);
EnableMenuItem(hMenu, SC_CLOSE, (uint)MF_BYCOMMAND | MF_GRAYED);
Если только эти функции и константы погуглить. Я вот что нагуглил и использовал:
http://www.pinvoke.net/default... systemmenu
http://www.pinvoke.net/default... lemenuitem
http://msdn.microsoft.com/ru-r... s.85).aspx

P.S. Советую еще тут про WinAPI почитать Готовые решения и полезные коды на Visual Basic .NET (Часть-1)

P.P.S. А еще я погуглил c# disable close button и нашел вот такую вещь
http://www.codeproject.com/Art... n-on-Forms
Альтернативное решение, и именно на C#.
Код тот нужно вставить внутрь класса формы.
Вложения
Тип файла: zip WindowsFormsApplication1.zip (36.2 Кб, 2 просмотров)
0
Заблокирован
04.08.2014, 02:28
что то не совсем понятный код я думал через winApi можно
Это и есть WinAPI.
Просто обычно мы "внешне" вызываем функции WinAPI.
А здесь мы перехватываем те, которые и так крутятся в нашем приложении (как и в любом приложении на винде), и видоизменяем их действие.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.08.2014, 02:28
Помогаю со студенческими работами здесь

Как сделать крестик стирающий данные формы?
Доброго времени суток! Пример - в поиске Яндекса, в правой части поля для ввода текста есть крестик. При нажатии на него из этого поля...

Как определить, что форма закрывается на красный крестик в ее заголовке
Товарищи, при создания проекта на VB10 столкнулись с одним очень неприятным моментом: Нужно программно описать событие - при закрытие...

Как сделать меню прямо в заголовке формы
Всем привет. Собственно хочу узнать, можно ли и как сделать вот такое меню (без применения WPF): Объясню суть. Такое меню встречается в...

Как отловить закрытие формы по нажатию на крестик в правом верхнем углу формы
Обычный обработчик не катит: нужно закрыть форму в процессе работы программы

Как сделать MainMenu неактивным?
Столкнулся с этой, с виду, простой проблемой, и не нашёл ответа. Пожалуйста, помогите!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru