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

Написать программу с кнопками и с текстовыми полями

16.07.2018, 21:17. Показов 4524. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток!
Скажите как написать программу с кнопками и с текстовыми полями.
Только не надо писать знаки как в билдере -> я их не понимаю.
хочу обычным способом все сделать, только чистым кодом на Dev-Cpp
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2018, 21:17
Ответы с готовыми решениями:

В программе с несколькими текстовыми полями, которые периодически меняются, как считать и отобразить лэйблы?
Всех с Новым Годом, но прошу помощи. Я только начал изучать с++, помогите с поставленной задачей. Есть программа с несколькими текстовыми...

Написать программу с формой и кнопками
написать программу,с формой кнопками и т.д,чтобы в форме работали прогрессии,желательно с комментариями,что где и как делается ....

Работа с текстовыми полями
Как перевести значение в текстовом поле в число, чтобы при нажатии на кнопку значения из 2 текстовых полей суммировались или вычитались, а...

5
Заблокирован
16.07.2018, 21:56
Цитата Сообщение от vitsd Посмотреть сообщение
Скажите как написать программу с кнопками и с текстовыми полями.
А что именно не получается? На вопрос "как", ответ - ручками в редакторе.
0
Заблокирован
17.07.2018, 19:05  [ТС]
Именно, не получается (не знаю как) в окне программы создать кнопки и текстовые поля.
Вот при создании Windows Application, Dev-Cpp генерирует код
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
#include <windows.h>
 
/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
    switch(Message) {
        
        /* Upon destruction, tell the main thread to stop */
        case WM_DESTROY: {
            PostQuitMessage(0);
            break;
        }
        
        /* All other messages (a lot of them) are processed using default procedures */
        default:
            return DefWindowProc(hwnd, Message, wParam, lParam);
    }
    return 0;
}
 
/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    WNDCLASSEX wc; /* A properties struct of our window */
    HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
    MSG msg; /* A temporary location for all messages */
 
    /* zero out the struct and set the stuff we want to modify */
    memset(&wc,0,sizeof(wc));
    wc.cbSize        = sizeof(WNDCLASSEX);
    wc.lpfnWndProc   = WndProc; /* This is where we will send messages to */
    wc.hInstance     = hInstance;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    
    /* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszClassName = "WindowClass";
    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */
 
    if(!RegisterClassEx(&wc)) {
        MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
 
    hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, /* x */
        CW_USEDEFAULT, /* y */
        640, /* width */
        480, /* height */
        NULL,NULL,hInstance,NULL);
 
    if(hwnd == NULL) {
        MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
 
    /*
        This is the heart of our program where all input is processed and 
        sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
        this loop will not produce unreasonably high CPU usage
    */
    while(GetMessage(&msg, NULL, 0, 0) > 0) { /* If no error is received... */
        TranslateMessage(&msg); /* Translate key codes to chars if present */
        DispatchMessage(&msg); /* Send it to WndProc */
    }
    return msg.wParam;
}
А теперь надо сделать так, чтобы, не имея редактора Forms, можно было без всяких ресурсов, чистым кодом создать кнопки. На форуме уже есть тема, где написано, как создать кнопки. А с текстовыми полями нет еще по-моему, по крайней мере через гугл не нашел.
Вот эту графику я не знаю, а обычно использую функции WinApi CreateDirectory, DeleteFile, GetModuleFileName и т.д. в консольных программах. Хочу научится создавать обычные программы, как броузер. Но, как говорю, графику абсолютно не знаю.
Хочу на работу пойти. Вот если бы к остальным знаниям добавить еще кнопки и поля, можно сделать нормальную, человеческую программу.
0
35 / 17 / 10
Регистрация: 13.12.2014
Сообщений: 107
17.07.2018, 20:18
Если хотите создавать элементы управления (кнопки, поля, скролы и т.д., и т.п.) в программе используйте CreateWindowEx.
Имена классов кнопка - BUTTON, поле ввода - EDIT, список - LISTBOX, раскрывающийся список - COMBOBOX и т.д., и т.п.
Подробнее в MSDN.

Добавлено через 3 минуты
Цитата Сообщение от vitsd Посмотреть сообщение
На форуме уже есть тема, где написано, как создать кнопки.
Вместо имени класса "BUTTON" вводите "EDIT". Удаляете стили кнопки BS_... (удаляйте все кроме WS_...). И устанавливаете стили поля ввода ES_... .
1
9 / 9 / 2
Регистрация: 09.04.2012
Сообщений: 75
18.07.2018, 18:55
Лучший ответ Сообщение было отмечено vitsd как решение

Решение

Текстовые поля (элементы) создаются функцией CreateWindowEx() с именем класса "STATIC", кнопки с классом "BUTTON". Посылаю файл справки по win api в zip-архиве (во вложении).
Вложения
Тип файла: zip MS.Win32API.Ref.zip (10.66 Мб, 44 просмотров)
1
Заблокирован
19.07.2018, 11:38  [ТС]
алекс чебк, спасибо!!! Это лучше любого учебника или интернета все в оффлайн.
Но я все таки вчера установил Visual C++, в редакторе форм это все быстрее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2018, 11:38
Помогаю со студенческими работами здесь

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

Работа с текстовыми полями в webBrowser
Доброго времени суток, кратко опишу ситуацию У меня есть webBrowser1 В качестве url ссылка на поисковик http://www.google.ru/ ...

Работа с текстовыми полями в Группе
В документе Excel есть рисунок, который играет роль шаблона. Поверх рисунка вставлены текстовые Поля. Поля заполняю макросом, таким вот...

Вывести отчеты вперемешку с текстовыми полями
Привет всем, Имеется отчет (reportViwer) нужно вывести таким образом: (первые 2 табликса вывел в ручную, сначала текстовое поле идет...

Таблица с текстовыми полями вместо ячеек
Здраствуйте! У меня такая проблема - надо создать таблицу, где вместо обычных ячеек содержатся текстовые поля, и если какое-то поле...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru