Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 7

Не получается прочитать режим отображения окна

16.12.2016, 14:48. Показов 1373. Ответов 3

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
Изучаю WinApi по книжке.
Вот есть такой код:

C++
1
2
3
4
5
6
7
8
9
10
#include <windows.h>
 
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
        MessageBox(NULL, "PamPam", "Trampapam", MB_OK);
        return NULL;
}
Заинтересовался что же за число передаёт операционная система в переменной nCmdShow.
Казалось бы, просто взять и вывести - задача простая. Но функция MessageBox принимает вторым параметром тип LPCTSTR (указатель на строку с сообщением).

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
#include <windows.h>
#include <string> 
#include <sstream>
using namespace std;
 
template <typename T>
std::string toString(T val)
{
    std::ostringstream oss;
    oss<< val;
    return oss.str();
}
 
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
        string str;
        int iVal;
        str = toString(5);
        
        MessageBox(NULL, *str, "Trampapam", MB_OK);
        return NULL;
Попробовал рецепт с темлейтом, найденный на просторах рунета, а оно не работает чего-то. Хочется ради спортивного интереса победить эту проблему.
Кто знает, чего сделать?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.12.2016, 14:48
Ответы с готовыми решениями:

В режим a+ , не получается прочитать содержимое файла
Здравствуйте, выбрал режим a+(Открывает файл для добавления и чтения. ) с добавлением все нормально, а вот с чтением беда. handle =...

после вкл компьютера,сразу переходит в режим восстановления, в безопасный режим не получается перейти. windows 7 64bit
после вкл компьютера,сразу переходит в режим восстановления, в безопасный режим не получается перейти... windows 7 64bit

Включить в Windows режим упрощенного отображения
Здравствуйте, помогите, пожалуйста новичку! Задача в том, чтобы из приложения включать упрощенный режим вывода на дисплей. Не знаю как...

3
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 7
16.12.2016, 14:57  [ТС]
Решил проблему выводом числа в консоли:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <windows.h>
#include <string> 
#include <iostream>
using namespace std;
 
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine, 
                   int nCmdShow) 
{
        cout << nCmdShow << endl;
        system("PAUSE");
        return NULL;
}
Выводит число 5.

А как можно победить до конца MessageBox?
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
16.12.2016, 15:23
Лучший ответ Сообщение было отмечено Ca85 как решение

Решение

Цитата Сообщение от Ca85 Посмотреть сообщение
А как можно победить до конца MessageBox?
C++
1
2
3
4
5
    {
        char str[100] = {};
        sprintf( str, "nCmdShow:  %d", (int)nCmdShow  ); //  #include <stdio.h>
        MessageBoxA( 0, str, "Information", MB_OK | MB_ICONINFORMATION | MB_TOPMOST );  
    }
1
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 7
16.12.2016, 16:03  [ТС]
Спасибо, Alex5, работает.



Интересно, не думал раньше о функции sprintf как о способе конкатенации строки и числа. Прикольно. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.12.2016, 16:03
Помогаю со студенческими работами здесь

режим отображения формул в экселе 2007
Как в экселе 2007 создать лист в режиме отображения формул?

Режим отображения вложений в Outlook 2016
Можно ли сделать чтобы вложения отображались так, как это было в 2010/2013 Outlook? С отображением полных имен, а не так как сейчас:

Перевести режим отображения рабочего стола в Клонирование
Привет всем, подскажите как из Delphi послать команду, чтобы включить режим Клонирование рабочего стола. PS: вид. nVidia

OpenGL: По нажатию клавиши клавиатуры менять режим отображения графика
По нажатию клавиши клавиатуры менять режим отображения графика: точками или линиями Я хотела завести переменную r и в зависимости от её...

Как узнать и изменить режим отображения скрытых и системных файлов в Windows?
Как узнать, какой режим отображения скрытых и системных файлов установлен в настройках Windows? Как его изменить?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru