Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/480: Рейтинг темы: голосов - 480, средняя оценка - 4.67
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132

MessageBox

31.08.2011, 13:35. Показов 98409. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
#include "stdafx.h"
#include <windows.h> 
void main() 
{ 
MessageBox(0,L"Лалалал",L"Ололо", MB_OK); 
}
Здравствуйте.Есть такой вот рабочий код.При выполнении открывается окошко cmd и MessageBox.Как сделать чтобы открывался ТОЛЬКО MessageBox без окна cmd?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.08.2011, 13:35
Ответы с готовыми решениями:

MessageBox
Int COUNT=20; MessageBox(NULL, COUNT + L&quot; очков. &quot;, L&quot;Title &quot;, MB_OK); Почему не выводит значение переменной COUNT в окне...

PE с MessageBox на С++
Есть какие-нибудь полезные статьи про Pe на с++? Пишу программу для компиляции dll в фомате Pe

messagebox()
нужно из массива вывести данные в окно messagebox #include &quot;stdafx.h&quot; #include &quot;windows.h&quot; int WINAPI WinMain(HINSTANCE,...

17
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.08.2011, 13:50
Пробуй (для расширения возможностей ввёл возможность выбоа показать главное окно вконце или нет
C++
1
2
3
4
5
6
7
8
9
10
#include <windows.h> 
 
void main() 
{ 
    HWND hWnd = GetForegroundWindow();
    ShowWindow(hWnd,SW_HIDE);//Прячем консоль
    //Светим меседжбокс
    if(MessageBox(hWnd,"OK - Показать главное окно","Сделайте выбор", MB_OKCANCEL) == 1) 
        ShowWindow(hWnd,SW_SHOW);//Светим консоль
}
Вложения
Тип файла: rar MsgBox.exe.rar (7.7 Кб, 107 просмотров)
2
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
31.08.2011, 13:53  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
#include <windows.h> 
 
void main() 
{ 
        HWND hWnd = GetForegroundWindow();
        ShowWindow(hWnd,SW_HIDE);//Прячем консоль
        //Светим меседжбокс
        if(MessageBox(hWnd,L"OK - Показать главное окно",L"Сделайте выбор", MB_OKCANCEL) == 1) 
                ShowWindow(hWnd,SW_SHOW);//Светим консоль
}
Спасибо,только в Visual Studio 2010 на добавить L :L"OK - Показать главное окно",L"Сделайте выбор"

Добавлено через 1 минуту
Но всётаки можно ли сделать чистый MessageBox без окна???
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.08.2011, 14:29
Цитата Сообщение от MaxxximyM Посмотреть сообщение
Но всётаки можно ли сделать чистый MessageBox без окна???
- а тут где окно???Для простоты запиши вот так тогда

C++
1
2
3
4
5
6
7
8
9
#include <windows.h> 
 
void main() 
{ 
        HWND hWnd = GetForegroundWindow();
        ShowWindow(hWnd,SW_HIDE);//Прячем консоль
        //Светим меседжбокс
        MessageBox(hWnd,L"Message text",L"Caption text", MB_OK); 
}
Пробуй
Окно мигнёт в сама начале на долю секунды, и то если ты успеешь его увидеть, по другому думаю не выйдет
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
31.08.2011, 15:06
Цитата Сообщение от MaxxximyM Посмотреть сообщение
Но всётаки можно ли сделать чистый MessageBox без окна???
я, например, не понимаю вопроса. MessageBox() это и есть окно. Нужно создать проект Win32 просто. Листинг 1.1 Юрий Щупак "Win32Api эффективная разработка приложений" Питер 2007.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
 
 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
 
    LPSTR lpCmdLine, int nCmdShow)
 
{
 
    MessageBox(NULL, "Hello, Win32 world!", "Hello from Message Box", MB_OK);
 
    return 0;
 
}
3
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.08.2011, 15:19
Цитата Сообщение от alkagolik Посмотреть сообщение
"Win32Api
- как не консольный вариант, я даже и не подумал...
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
31.08.2011, 18:59
Недавно совсем тема была
FreeConsole
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.08.2011, 19:59
Цитата Сообщение от easybudda Посмотреть сообщение
FreeConsole
- т.е вбить перед меседжбоксом и всё?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
31.08.2011, 20:23
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
т.е вбить перед меседжбоксом и всё?
ага
C
1
2
3
4
5
6
7
#include <windows.h>
 
int main(void){
    FreeConsole();
    MessageBoxA(NULL, "Yo-ho-ho", "Message", MB_OK);
    return 0;
}
2
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.08.2011, 21:58
FreeConsole(); как и AllocConsole - никогда не юзал, да уж минус мне...
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
01.09.2011, 01:00
Хм. Интересно. Очень интересно.
А что, никто не знает, что в настройках IDE есть пункт типа "компоновщик-> не создавать консольное окно"? В DEV C++ есть точно.

........................................ ........................................ ........................................ .

ТС, чтобы создавать или не создавать консольное окно, для этого в файловом заголовке надо поправить всего одно поле, Subsystem
Хочешь правь вручную, в hex-редактое
...Вот так оно правится программно, запускаешь прогу, вводишь имя экзешника и нужное значение поля; после чего консольное окно либо создаётся либо нет. Подробности смотри в "формат PE- файлов"

Код неаккуратный даже для меня ну да я давно-давно писал подобное а щас на скорую руку переделал, дабы только лишь сохранить функционал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <windows.H>
#include <stdio.H>
#define NTSIGNATURE(a) ((LPVOID)((BYTE *)a + ((PIMAGE_DOS_HEADER)a)->e_lfanew))
typedef IMAGE_OPTIONAL_HEADER OptionalHeader; 
 
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Эта функция будет находить нам размер файла и его возвращать. 
long int razmer_faila (char* falis_name) {
 
 long int Razmer_Faila;
 HANDLE hFile;
 
 hFile = CreateFile(falis_name,
                       0,
                     FILE_SHARE_READ, 
                     NULL,
                     OPEN_EXISTING, 
                     FILE_ATTRIBUTE_NORMAL, 
                     NULL);
 
 //Проверяем, нормалено файл открыт или нет
 if (hFile== INVALID_HANDLE_VALUE) {
  return 0;
 }
 Razmer_Faila= (long int)GetFileSize(hFile, 0);
 CloseHandle (hFile);
 return Razmer_Faila; 
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
 
int main () {
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
                                //+ + +
 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!перегоняем файл в строку!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 char falis_name [MAX_PATH];
 long int Razmer_Faila;
 
 
 //Первое, что сделааем, это введём имя файла, который будем перегонять в строку:
 //Ввод имени файла:
 printf ("Вводи имя экзешника\n");
 if (!gets (falis_name)) {
  printf ("проблема с вводом имени экзешника\n");
  system ("pause");
  return 0;   
 }       
 
 //Теперь находим размер файла
 if (!(Razmer_Faila= razmer_faila (falis_name))) {
  printf ("не получилось найти размер экзешника\n");
  system ("pause");
  return 0;
 }
 
 
 //Теперь открываем файл на чтение
 FILE* f;
 if (!(f= fopen (falis_name, "rb"))) {
  printf ("экзешник на чтение не открыт\n");
  system ("pause");
  return 0; 
 }  
 
 //Теперь переписываем файл в строку нужного размера. ДЛя этого такую строку надо выделить
 //unsigned char* stroka_dla_faila= new unsigned char [Razmer_Faila+ 1]; 
 unsigned char* stroka_dla_faila= new unsigned char [Razmer_Faila]; 
 
 
 //И собсно запись файла в эту строку
 if (fread (stroka_dla_faila, 1, Razmer_Faila, f)<Razmer_Faila) {
  printf ("не удалось считать экзешник в строку\n");
  system ("pause");
  return 0;
 }
 
 fclose (f);
 
 
 //Потом не забыть вернуть память оси с помощью delete 
 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!конец перегоняем файл в строку!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 
PIMAGE_NT_HEADERS pPE=(PIMAGE_NT_HEADERS)NTSIGNATURE((long)stroka_dla_faila);
 
 
printf ("Теперь вводи число 2 или 3,если введёшь 2, то консоли создаваться не будет,\
 а если 3, то будет\n");
 
scanf ("%d",&(pPE->OptionalHeader.Subsystem));
 
//Перегоним строку в файл
if (!(f= fopen (falis_name, "wb"))) {
 printf ("файл на запись не открыт\n");
 system ("pause");
 return 0; 
}  
 
fwrite (stroka_dla_faila, 1, Razmer_Faila, f); 
delete [] stroka_dla_faila;
fclose (f);
getchar ();
 return 0;
}
2
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
01.09.2011, 01:04
Цитата Сообщение от kravam Посмотреть сообщение
А что, никто не знает, что в настройках IDE есть пункт типа "компоновщик-> не создавать консольное окно"? В DEV C++ есть точно.
Видимо, удивлю, но не все IDE пользуются. К тому же...
Цитата Сообщение от kravam Посмотреть сообщение
Хочешь правь вручную, в hex-редактое
мы простых путей не ищем, ага. Добавить вызов одной функции в начале программы - это не по-джедайски!
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
01.09.2011, 01:08
...А, соврал, не файловом, а в опциональном заголовке.

Добавлено через 3 минуты
Цитата Сообщение от easybudda Посмотреть сообщение
Видимо, удивлю, но не все IDE пользуются. К тому же...

мы простых путей не ищем, ага. Добавить вызов одной функции в начале программы - это не по-джедайски!
Всё так. По джедайски, раз уж вы IDE не пользуетесь, найти опции компилятора, которые не создавали (создавали) бы окно и компилить с ними.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
01.09.2011, 01:20
Самый нормальный способ это изначально создать правильный тип приложения, зачем скрывать, от чего можно избавится вообще?
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
01.09.2011, 01:44
Если g++, то:
C++
1
g++ -mwindowsn proga.cpp
не создаётся консольное окно
C++
1
g++ proga.cpp
создаётся консольное окно

Добавлено через 3 минуты
Вот так надо
C++
1
-mwindows
...Редактировать код одно мучение
2
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
01.09.2011, 06:13
Цитата Сообщение от kravam Посмотреть сообщение
А что, никто не знает, что в настройках IDE есть пункт типа "компоновщик-> не создавать консольное окно"?
MSVS 2008
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
01.09.2011, 10:33
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
зачем скрывать, от чего можно избавится вообще?
Под виндой програмки с окошками на gtk+ при запуске из проводника открывают пустое консольное окно, которое просто висит (ну ещё можно с помощью gprint() в него выводить что-нибудь). Есть, наверное, более кошерный способ это самое окно не открывать, но я его пока не нашёл. А писать WinMain в качестве точки входа как-то не хочется, хотя может так и правильнее было бы...

Добавлено через 22 минуты
ух, ты, а в правду -mwindows достаточно, чтоб окно не создавалось...
0
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
01.09.2011, 13:08  [ТС]
Всем спасибо,я так и хотел чтобы вылетало окошко MessageBoxа без окна командной строки.Тема закрыта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2011, 13:08
Помогаю со студенческими работами здесь

Вывод messagebox
Необходимо вывести сообщение в messagebox,после выоа программа должна работать недожидаясь никаких действий,как это реолизовать

Закрытия MessageBox
Добрый день как программно можно закрыть окно MessageBox без нажатия кнопки OK

MessageBox API
MessageBox API: не получаеться обработать выбор. Мой код: int SELECT = MessageBox(hwnd, _T(&quot;Вы действительно хотите завершить работу...

трабла с MessageBox
Вот такая вот задачка сначала задается текст в ANSI ,затем его конвертируем в UNICODE и должны вывести его 3 способами - через _tprintf ,...

заменить MessageBox на ...
#define _WIN32_WINNT 0x0500 #include&lt;fstream&gt; #include&lt;windows.h&gt; #include&lt;iostream&gt; using namespace std; ofstream...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru