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

Winapi c++ Как связать текстовое поле и кнопку, чтоб содержимое записывалось в тхт?

04.12.2022, 18:39. Показов 1198. Ответов 0

Студворк — интернет-сервис помощи студентам
Как мне связать текстовое поле и кнопку Save, чтоб содержимое записывалось в тхт?
И что надо написать, чтобы открыть это окно из кода в другой функции?
новичок просто

код:
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#pragma comment(linker,""/manifestdependency:type='win32' \
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"")
#include <Windows.h>
 
 
int CALLBACK  wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR szCmdLine, int nCmdShow)
/*CALLBACK - #define для stdcall (соглашение для вызовов, вызываемый объект будет сам за собой очищать стек
 wWinMain - идентификатор
 HINSTANCE  hInstance - указатель на начало исполняемого модуля, мз сигнатуры. адрес памяти.
 HINSTANCE - не используется был акт. для 16 битных версий виндовс.
 PWSTR szCmdLine - указатель на строку UNICOD символов оканчивающихся нулём. По сути просто аргументы.
 int nCmdShow - параметр отвечающий за то как будет показываться окно (свёрнуто, развёрнуто, на весь экран и т.д.).
*/
{
    MSG msg{};                             // Структура, которая содержит в себе информацию о соообщениях (между Windows и окном или между окнами).
    HWND hwnd{};                          // Дескриптор окна ( HANDLE указ. на объект ядра в котором храниться информация о нашем окне).
    WNDCLASSEX wc{ sizeof(WNDCLASSEX) }; // Эта структура отвечает за некие х-ки окна (в фигурных скобках размеры).Исп. агрегатная инициализация.
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hbrBackground = reinterpret_cast<HBRUSH>(GetStockObject(WHITE_BRUSH));
    wc.hCursor = LoadCursor(nullptr, IDC_ARROW);
    wc.hIcon = LoadIcon(nullptr, IDI_APPLICATION);
    wc.hIconSm = LoadIcon(nullptr, IDI_APPLICATION);
    wc.hInstance = hInstance;
    wc.lpfnWndProc = [](HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -> LRESULT
 
    {
        switch (uMsg)
        {
        case WM_CREATE:
        {
            HWND hButton = CreateWindow(
                L"BUTTON",
                L"START",
                WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                90, 40, 200, 30, hWnd, reinterpret_cast<HMENU>(1000), nullptr, nullptr
            );
 
            HWND hButton2 = CreateWindow(
                L"BUTTON",
                L"SCOREBOARD",
                WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                90, 110, 200, 30, hWnd, reinterpret_cast<HMENU>(2000), nullptr, nullptr
            );
 
            HWND hEdit = CreateWindow(
                L"Edit", L"YOUR NICKNAME",
                WS_BORDER | WS_CHILD | WS_VISIBLE | ES_LEFT,
                90, 180, 130, 30, hWnd, nullptr, nullptr, nullptr
            );
 
            HWND hButton3 = CreateWindow(
                L"BUTTON",
                L"SAVE",
                WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                220, 180, 70, 30, hWnd, reinterpret_cast<HMENU>(3000), nullptr, nullptr
            );
 
            HWND hButton4 = CreateWindow(
                L"BUTTON",
                L"EXIT",
                WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                90, 250, 200, 30, hWnd, reinterpret_cast<HMENU>(3000), nullptr, nullptr
            );
 
            return 0;
        }
 
 
        case WM_COMMAND:
        {
            switch (LOWORD(wParam))
            {
            case 1000:
            {
                MessageBox(hWnd, L"DO", L"NE", MB_ICONINFORMATION);
            }
                break;
            }
            return 0;
        }
 
        case WM_DESTROY:
            {
                PostQuitMessage(EXIT_SUCCESS);
            }
            return 0;
        }
        return DefWindowProc(hWnd, uMsg, wParam, lParam); // вызывается в случае если сообщение не обрабатывается
    };
    wc.lpszClassName = L"MyAppClass";
    wc.lpszMenuName = nullptr;
    wc.style = CS_VREDRAW | CS_HREDRAW;
    /*
    wc.cbClsExtra = 0; Отвечают за дополнительное выделение памяти в
    wc.cbWndExtra = 0; классе нашего окна (для записи какой либо информации в окно).
 
    hbrBackground - Это поле принимает дескриптор кисти которая окрашивает окно.
    GetStockObject - Возвращает GDI объект который мы можем привести к типу HBRUSH.
 
    wc.hCursor = LoadCursor(nullptr, IDC_ARROW);     - HANDLE курсора.
    wc.hIcon = LoadIcon(nullptr, IDI_APPLICATION);   - HANDLE иконки.
    wc.hIconSm = LoadIcon(nullptr, IDI_APPLICATION); - HANDLE иконки (отображается сверху слева в заголовке окна).
 
    wc.lpfnWndProc = [](HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -> LRESULT
    - Эта процедура отвечает за обработку сообщений (MSG msg{};)
      Принимает 4 обязательных параметра и возвращает LRESULT (результат).
      HWND hWnd     - дескриптор окна к которому приходит сообщение.
      UINT uMsg     - код сообщения.
      WPARAM wParam - указатель в нём храниться необходимая для сообщения информация.
      LPARAM lParam - указатель в нём храниться необходимая для сообщения информация.
 
      wc.lpszClassName = L"MyAppClass";   - имя класса (любое).
      wc.lpszMenuName = nullptr;          - указатель на имя меню.
      wc.style = CS_VREDRAW | CS_HREDRAW; - стиль окна (2 флага по умолчанию)
 
 
 
    */
 
    if (!RegisterClassEx(&wc))
        return EXIT_FAILURE;
 
    if (hwnd = CreateWindow(wc.lpszClassName, L"Minesweeper", WS_OVERLAPPEDWINDOW, 0, 0, 400, 400, nullptr, nullptr, wc.hInstance, nullptr); hwnd == INVALID_HANDLE_VALUE)
        return EXIT_FAILURE;
    /*
     if (!RegisterClassEx(&wc)) - регистрация в системе класса нашего окна.
      return EXIT_FAILURE;
 
     if (hwnd = CreateWindow(wc.lpszClassName, L"Заголовок!", WS_OVERLAPPEDWINDOW, 0, 0, 600, 600, nullptr, nullptr, wc.hInstance, nullptr ); hwnd == INVALID_HANDLE_VALUE)
      return EXIT_FAILURE;
      - Создание нашего окна.
      wc.lpszClassName    - имя класса.
      L"Заголовок!"       - заголовок окна.
      WS_OVERLAPPEDWINDOW - стиль окна (стили посмотреть в msdn).
      0, 0,               - X и Y координаты окна (отсчитываются от левой верхней точки).
      600, 600,           - ширина, высота.
 
 
     */
    ShowWindow(hwnd, nCmdShow); // показ окна
    UpdateWindow(hwnd);         // перерисовка окна (передаётся HANDLE)
 
    while (GetMessage(&msg, nullptr, 0, 0)) // Цикл обработки сообщений
    {
        TranslateMessage(&msg); // функция расшифровывает системное сообщение
        DispatchMessage(&msg);  // функция  передаёт сообщение в оконную процедуру на обработку
    }
 
    return static_cast<int> (msg.wParam); // возвращаемое значение точки входа
 
    // hWnd - идентификатор окна.
    // nullptr - нулевой указатель.
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2022, 18:39
Ответы с готовыми решениями:

Создать кнопку и текстовое поле. При нажатии на кнопку ввести в текстовое поле текущее время
Создать кнопку и текстовое поле. При нажатии на кнопку ввести в текстовое поле текущее время .

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

Как сделать, чтоб программа выделяла ссылку со страницы сайта и прописывала в текстовое поле
Добрый день! Как сделать, чтоб программа выделяла ссылку со страницы сайта и прописывала в текстовое поле?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2022, 18:39
Помогаю со студенческими работами здесь

Как создать текстовое поле и кнопку подтверждения в этой функции?
&lt;?php function Rot13($string){ for($i=0; $i &lt; strlen($string); $i++){ $c = ord($string); if($c &gt;= ord('n') &amp; $c &lt;=...

Как автоматически нажать на кнопку в WebBrowser-е, и вставить текст в текстовое поле?
здравствуйте, есть два баттона, первый нажимает в браузете на кнопку: private void button4_Click(object sender, EventArgs e) ...

Создать текстовое поле, кнопку и поле в которое будет присваиваться текст из поля.
Создать текстовое поле, кнопку и поле в которое будет присваиваться текст из поля. то есть с каждым нажатием, а кнопку будет в конец...

Создать текстовое поле и связать с кнопками
Дана программа, надо добавить в нее текстовое поле, такое,что при вводе числа на кнопке выводилось это число Первую часть я сделал,...

Как можно сделать, чтобы при нажатии на кнопку ( Символ-Button) выходил текст в текстовое поле
Как можно сделать, чтобы при нажатии на кнопку ( Символ-Button) выходил текст в текстовое поле ? Например, при нажатии кнопки 1 писалось 1...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru