Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
ostaptem
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 3
1

Подскажите как сделать кнопки?

24.04.2015, 09:20. Просмотров 392. Ответов 4
Метки нет (Все метки)

Помогите прописать код чтобы работали кнопки выход и обновить, вот так ой код у меня получился, а вот чтобы работали кнопки сами не доходит что то((((


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
#include <windows.h>
//#include "head.h"
 
LPSTR szWindowClass = "МойКласс";   // обработчик окна
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)//функция обработки
{// А тут мы обрабатываем нажатие клавиш
    switch (uMsg) //указатель что анализировать нужно значение Msg
    {
    case WM_DESTROY: //обработка какого либо сообщения
        PostQuitMessage(0);
    default: //если не предусмотрена
        break;
    }
    return DefWindowProc(hWnd, uMsg, wParam, lParam); //выход из цикла 
}
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow) //Точка входа
{
    TCHAR szClassName[] = "MainWindows";
    TCHAR szTitle[] = "Hello, World";
    MSG msg;
    WNDCLASS wc; // класс окна
    wc.hInstance = hInst; // имя этой функции-обработчика окна 
    wc.style = CS_HREDRAW | CS_VREDRAW; //стиль класса окна
    wc.hbrBackground = CreateSolidBrush(RGB(800, 700, 500)); // фон окна
    wc.lpfnWndProc = WndProc; //"Оконная процедура" - функция, которая будет получать "сообщения" от Windows
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);//Параллельно загружаю стандартную иконку
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);//Стандартный курсор
    wc.lpszClassName = szClassName; //имя класса
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.lpszMenuName = 0;
    char str[200] = "";
    //hwnd - Дескриптор - уникальный номер экземпляра окна программы(каждая программа при запуска 
    //получает его от windows автоматически), для того чтобы windows могла их различать.
    RegisterClass(&wc); //регистрация класса окна (передает адрес переменной) 
    HWND hwnd = CreateWindow(szClassName, szTitle, WS_OVERLAPPEDWINDOW, 50, 50, 550, 300,
        HWND_DESKTOP, NULL, hInst, NULL); // функция создания окна (имя класса, заголовок окна,
    //стиль окна, x, y, ширина, высота, родительское окно, меню окна, указатель текущего преложения, текущие данные)
 
 
    HWND he = CreateWindow("listbox", 0,
        WS_CHILD | WS_VISIBLE | ES_LEFT, 10, 60, 500, 200, hwnd, (HMENU)10000, hInst, NULL);
    ShowWindow(hwnd, SW_SHOWNORMAL); //показать окно на экране
 
    HWND newCtrl = CreateWindow("button", "Obnovlenie", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
        10, 10, 100, 40, hwnd, (HMENU)10000, hInst, NULL);
 
    HWND newCtrl1 = CreateWindow("button", "EXIT", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
        410, 10, 100, 40, hwnd, (HMENU)10000, hInst, NULL);
 
    HWND win = GetWindow(GetDesktopWindow(), GW_CHILD);//Считывает описатель окна pабочей области Windows.
    while (win)  // возвращает указатель на окно
        // дискриптор окна рабочего стола
    {
        win = GetWindow(win, GW_HWNDNEXT); //Считывает указатель на окно, находящееся в отношении, 
        //указанным в Cmd, с окном, указатель на которое – первый входной параметр функции.
        //GW_HWNDNEXT - идентифицирует окно
        GetWindowText(win, str, 50);//Копиpует заголовок окна или текст оpгана упpавления
        if (IsWindowVisible(win))//Опpеделяет, сделано ли окно видимым функцией ShowWindow.
 
            SendMessage(he, LB_ADDSTRING, 0, (LPARAM)&str); //вызывает оконную процедуру для заданного
        //окна и не возвращает значение до тех пор, пока оконная процедура не обработает сообщение. 
    }
 
 
    while (GetMessage(&msg, 0, 0, 0)) // обработчик входящих сообщений,
        //получение сообщений и сохранение в msg
    {
        TranslateMessage(&msg); // обработка сообщения
        DispatchMessage(&msg); // удаление входящих сообщений
    }
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2015, 09:20
Ответы с готовыми решениями:

Как сделать кнопки, передвигающие полосу прокрутки?
Подскажите как сделать кнопки которые будут передвигать прокрутку?

Подскажите, как называются такие окна, и как их сделать
вообщем нужно сделать несколько окон внутри одного окна, прикрепленными друг к...

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

Подскажите как сделать в своей программе вход в социальную сеть.Например в ВК
У меня есть программа и мне нужно что бы она сама искала друзей онлайн в...

Подскажите пожалуйста как запрограммировать в Delphi чтобы по нажатию кнопки открывался сиди ром?как сделать чтобы при вводе в labeledit ФИО при нажат
Подскажите пожалуйста как запрограммировать в Delphi чтобы по нажатию кнопки...

4
mh-coder
-36 / 29 / 4
Регистрация: 01.02.2014
Сообщений: 839
24.04.2015, 09:38 2
читайте https://msdn.microsoft.com/ru-ru/library/bb384843.aspx
0
ostaptem
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 3
24.04.2015, 10:10  [ТС] 3
Я поняла что это надо делать в case WM_COMMAND: но не могу прописать сами команды выхода и обновления
case WM_COMMAND:
if (LOWORD(wparam) == 10000)
{

}
if (LOWORD(wparam) == 1000)
{

}
0
mh-coder
-36 / 29 / 4
Регистрация: 01.02.2014
Сообщений: 839
24.04.2015, 10:18 4
Цитата Сообщение от ostaptem Посмотреть сообщение
команды выхода и обновления
выход это SC_CLOSE, а обновление это RedrawWindow
0
ostaptem
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 3
24.04.2015, 10:23  [ТС] 5
Спасибо большое)) буду доделовать
0
24.04.2015, 10:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2015, 10:23

Подскажите, что делаю не так. Хочу сделать калькулятор, но у меня не выводятся на экран кнопки
Подскажите, что делаю не так. Хочу сделать калькулятор, но у меня не выводятся...

Как при нажатии одной кнопки сделать "нажатие" другой кнопки?
Как скажем при нажатии одной кнопки сделать &quot;нажатие&quot; другой кнопки? Именно...

AFGUI. Подскажите плз, как рисовать кнопки?
https://github.com/OmdriyFursov/AFGUI (guiTextButton.c) что это (TEXT_BUTTON *...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru