Другие языки программирования и технологии

C++ Помогите новичку

"Меня терзают смутные сомненья", создание приложений на WinAPI -- это совсем не тема для новичков.
Тем не менее, вторую кнопку можно создать точно так же как и первую. Если в данной программе изменить функцию WindowProcedure() следующим образом:

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
    static HWND newbtn = NULL;
    switch (message) {
    case WM_DESTROY:
        PostQuitMessage (0);
        break;
    case WM_COMMAND:
        if (LOWORD(wParam) == 100) {
            if (newbtn == NULL) {
                newbtn = CreateWindow(
                    "BUTTON",
                    "",
                    WS_VISIBLE | WS_CHILD,
                    15,
                    45,
                    105,
                    20,
                    hwnd,
                    (HMENU)101,
                    (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE),
                    NULL);
            } else {
                SetWindowText(newbtn, "Привет");
            }
        }
        break;
    default:
        return DefWindowProc (hwnd, message, wParam, lParam);
    }
    return 0;
}

То при первом нажатии на первую кнопку, появится вторая кнопка, при повторном нажатии на второй кнопке появится надпись "Привет".

Кнопки, как и остальные элементы пользовательского интерфейса в WinAPI создаются функцией CreateWindow[Ex], текст на элементах управления можно поменять функцией SetWindowText()
Серж Оборкин
Серж Оборкин
96 335
Лучший ответ
В какой среде?
WS
Wasi Sliskov
8 247
Не знает русский, но уже учит плюсы. Зачем так жить?
RD
Ragim Dzhalilov
2 085
кидаешь на форму два батона и в обработчике событий "клик" перврй кнопки пишешь батон2->кэпшен="привет"
в чём? может я смогу помочь