Форум программистов, компьютерный форум CyberForum.ru

Работа с окнами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
McLaren
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 6
10.04.2011, 07:10     Работа с окнами #1
Здравствуйте!
Есть у меня данная часть кода (функция временного окна). Задача была следующая: при нажатии на PageUp/PageDown меняется цвет шрифта и цвет фона текста.
Теперь нужно сделать, чтобы при нажатии на Pageup/pagedown размер шрифта увеличивался/уменьшался на 4. (изменение цвета и фона уже не нужно, только размера). Нашел вроде функцию lfHeight - менять размер шрифта, но что-то не хочет работать.

Выделил красным, где я "пытался вставить" эту функцию.

Помогите пожалуйста подправить.



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
// --- Функция временного окна
LRESULT CALLBACK PopUpWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    static char text3[]="Текстовая строка"; // Выводимая в окне строка
    static int a1,a2,a3,b1,b2,b3;   // Переменные для задания цветов фона и текста 
    static RECT rc1;
    static int x1,y1;
    static TEXTMETRIC tm1;
    GetClientRect(hWnd,&rc1);
    switch(msg)
    {
    // Задание координат и цветов текста
    case WM_CREATE:
    {
        HDC hdc=GetDC(hWnd);
        GetTextMetrics(hdc,&tm1);
        x1=(rc1.right-tm1.tmAveCharWidth*strlen(text3))/2;
        y1=(rc1.bottom-tm1.tmHeight)/2;
        a1=255;
        a2=255;
        a3=255;
        b1=0;
        b2=0;
        b3=0;
        ReleaseDC(hWnd,hdc);
    }; break;
    // Вывод строки с текущими цветами фона и символов
    case WM_PAINT:
    {
        PAINTSTRUCT ps;      // структура для рисования
        HDC hdc = BeginPaint(hWnd, &ps);
        SetBkColor(hdc,RGB(a1,a2,a3));
        SetTextColor(hdc,RGB(b1,b2,b3));
        TextOut(hdc, x1, y1,text3, strlen(text3));
        EndPaint(hWnd, &ps);
    };break;
    // Обработка сообщения о нажатии клавиши
    case WM_KEYDOWN:
    {
        int nVKey=(int)wParam;//Виртуальный код клавиши
        switch(nVKey)
        {
        case VK_NEXT:           // Нажата клавиша Стрелка влево
            {
                a1=255*rand();
                a2=255*rand();
                a3=255*rand();
                InvalidateRect(hWnd,&rc1,TRUE);
            };break;
        case VK_PRIOR:          // Нажата клавиша Стрелка вправо
            {
               // b1=255-255*rand();
            //  b2=255-255*rand();
            //  b3=255-255*rand();
            HFONT WINAPI CreateFontIndirect(const LOGFONT FAR* lplf);
            [COLOR="Red"]static LOGFONT lf;
                                  lf.lfHeight=20;[/COLOR]
 
                
                InvalidateRect(hWnd,&rc1,TRUE);
            };break;
        }
    };break;
    // Необработанные сообщения передаем в стандартную
    // функцию обработки сообщений по умолчанию.
    default: return DefWindowProc(hWnd, msg, wParam, lParam);
    }
    return 0l;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2011, 07:10     Работа с окнами
Посмотрите здесь:

C++ Управление окнами (windows.h)
C++ Работа с двумя окнами - C++
C++ Как работать с окнами?
C++ Как работать с окнами?
Управление окнами другой программы C++
C++ управление окнами
C++ Создание программы с окнами
C++ Взаимодействие з чужими окнами

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 11:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru