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

Где кнопка?

03.04.2017, 15:23. Показов 1256. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, форумчане!

Мой первый вопрос звучит так:

У меня есть функция, рисующая кнопку:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Draw(HWND hWnd, HWND button1) {
    button1 = CreateWindow(
    "button", // Класс
    "settings speed", // Название
    WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, // Стили
    10, // Х
    10, // У
    100, // Ширина
    100, // Высота
    hWnd, // ИД родителя
    (HMENU)1001, // Сообщение, отправляемое кнопкой
    (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), // ХЗ
    NULL); // ХЗ
}
И в WinMain есть строчка:

C++
1
Draw(main_hWnd, button_1);
Результат прикреплён.

Вопрос: где кнопка?

Полный код, если нужен:

Кликните здесь для просмотра всего текста
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
// GT_HelloWorldWin32.cpp 
// compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c 
 
#include <windows.h> 
#include <stdlib.h> 
#include <string.h> 
#include <tchar.h> 
 
// Global variables 
// The main window class name. 
static TCHAR szWindowClass[] = _T("Test_Window_WinAPI");
// The string that appears in the application's title bar.
static TCHAR szTitle[] = _T("Test_Window_WinAPI");
 
HINSTANCE hInst;
 
HWND button_1;
 
// Forward declarations of functions included in this code module: 
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
void Draw(HWND hWnd, HWND button1);
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    WNDCLASSEX wcex;
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc = WndProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra = 0;
    wcex.hInstance = hInstance;
    wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wcex.lpszMenuName = NULL;
    wcex.lpszClassName = szWindowClass;
    wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
 
 
    if (!RegisterClassEx(&wcex)) {
        MessageBox(NULL, _T("WTF?!"), _T("Test_Window_WinAPI"), NULL);
        return 1;
    }
 
    hInst = hInstance;
 
    // Store instance handle in our global variable 
    // The parameters to CreateWindow explained: 
    // szWindowClass: the name of the application 
    // szTitle: the text that appears in the title bar 
    // WS_OVERLAPPEDWINDOW: the type of window to create 
    // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y) 
    // 500, 100: initial size (width, length) 
    // NULL: the parent of this window
    // NULL: this application does not have a menu bar
    // hInstance: the first parameter from WinMain
    // NULL: not used in this application
 
    HWND main_hWnd = CreateWindowEx(WS_EX_TOPMOST, szWindowClass, szTitle, WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 250, 400, NULL, NULL, hInstance, NULL);
 
    Draw(main_hWnd, button_1);
 
    if (!main_hWnd) {
        MessageBox(NULL, _T("WTF?!"), _T("Test_Window_WinAPI"), NULL);
        return 1;
    }
 
    // The parameters to ShowWindow explained: 
    // hWnd: the value returned from CreateWindow 
    // nCmdShow: the fourth parameter from WinMain 
 
    ShowWindow(main_hWnd, nCmdShow);
    UpdateWindow(main_hWnd);
 
    // Main message loop: 
 
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
}
 
// 
//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) 
// 
//  PURPOSE:  Processes messages for the main window. 
// 
//  WM_PAINT    - Paint the main window 
//  WM_DESTROY  - post a quit message and return 
// 
// 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    PAINTSTRUCT ps;
    HDC hdc;
    TCHAR greeting[] = _T("Hello, World!");
 
    switch (message) {
    case WM_PAINT: hdc = BeginPaint(hWnd, &ps);
        // Here your application is laid out. 
        // For this introduction, we just print out "Hello, World!" 
        // in the top left corner. 
        TextOut(hdc, 5, 5, greeting, _tcslen(greeting));
        // End application-specific layout section.
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY: PostQuitMessage(0);
        break;
    default: return DefWindowProc(hWnd, message, wParam, lParam);
        break;
    }
    return 0;
}
 
void Draw(HWND hWnd, HWND button1) {
    button1 = CreateWindow(
        L"button1", // Класс
        L"Кнопка", // Название
        WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, // Стили
        10, // Х
        10, // У
        10, // Ширина
        10, // Высота
        hWnd, // ИД родителя
        (HMENU)1001, // Сообщение, отправляемое кнопкой
        (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), // ХЗ
        NULL); // ХЗ
}
Миниатюры
Где кнопка?  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2017, 15:23
Ответы с готовыми решениями:

Кнопка BS_OWNERDRAW или кнопка со своей картинкой
Есть код, с помощью которого можно менять картинку при нажатии, при фокусе { // ownerdraw button static HBITMAP no_active; ...

1с 8.2 где находится кнопка?
Всем привет. Создал новую форму, но не вижу элементов: флажок, кнопка, поле ввода, надпись. Где они находятся? В 8.1 они были снизу....

Кнопка наверх где найти
Создаю сайт на движке вордпресс. Вот мой сайт http://anfas-art.ru/ И там есть кнопка наверх, я хочу ее изменить, а где она в коде не...

3
 Аватар для Asaido
30 / 11 / 2
Регистрация: 24.02.2017
Сообщений: 47
03.04.2017, 16:11
Цитата Сообщение от Magistr Softer Посмотреть сообщение
C++
1
2
CreateWindow(
* * * * L"button1"
button1
0
2 / 2 / 2
Регистрация: 03.04.2017
Сообщений: 6
03.04.2017, 16:15  [ТС]
Asaido, не то. Кнопка всё равно не отображаеся
0
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
03.04.2017, 16:43
Лучший ответ Сообщение было отмечено Magistr Softer как решение

Решение

Цитата Сообщение от Magistr Softer Посмотреть сообщение
L"button1", // Класс
Что это за класс, где он зарегистрирован? Если создать нужно стандартную кнопку, то класс должен быть L"button" или WC_BUTTON.

C++
1
2
3
4
5
CommCtrl.h
 
// Button Class Name
#define WC_BUTTONA  "Button"
#define WC_BUTTONW  L"Button"
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2017, 16:43
Помогаю со студенческими работами здесь

Место где не работает кнопка
Приветствую! Сайт http://artjetfly.com/ Не работает кнопка Контакты Причем если я меняю местами с какой то другой кнопкой, то она...

Где у меня кнопка ,,Visual Assist,,?
Где??

Обновление той строки где кнопка
Данные из базы данных выводятся в таблицу, напротив каждой строки есть две кнопки, нужно что бы при нажатии на одну из них в ...

Acer Aspire E1-571G; Где кнопка Reset?
Подскажите, кто знает. Со всех ракурсов его уже осмотрел, но так и не нашел. А то всякий раз, когда зависает, приходится выдергивать шнур и...

Не могу понять, где находится кнопка пуск
Не могу понять где кнопка пуск даже находится. А уж про то что он доту не тянет вообще молчу. Че делать?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru