Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
1

Эффект бегущей строки в заголовке приложения

24.10.2016, 18:19. Показов 1493. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вот код, помогите с частью где строка должна бегать не могу правильно написать код


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
//3. реализовать эффект бегущей строки в заголовке приложения. применить кольцевую очередь.
 
#include <windows.h>
 
#define _CRT_SECURE_NO_WARNINGS
#include <ctime>
#include <string>
 
// прототип оконной процедуры, которая занимается обработкой сообщений
LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);
 
TCHAR szClassWindow[] = L"Каркасное приложение"; // имя класса окна
 
                                                    // точка входа в приложение
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
    // 1. определение класса окна
    WNDCLASSEX wcl;
    wcl.cbSize = sizeof(wcl);   // размер в байтах структуры WNDCLASSEX
                                // перерисовать всё окно, если изменён размер по горизонтали или по вертикали
    wcl.style = CS_HREDRAW | CS_VREDRAW;    // CS (Class Style) - стиль класса окна (CS_DBLCLKS!)
    wcl.lpfnWndProc = WindowProc;   // адрес оконной процедуры, указатель на функцию WindowProc
    wcl.cbClsExtra = 0;     // используется Windows 
    wcl.cbWndExtra = 0;     // используется Windows 
    wcl.hInstance = hInst;  // дескриптор данного приложения
 
    wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION);    // загрузка стандартной иконки (посмотреть список иконок!)
 
 
 
    wcl.hCursor = LoadCursor(NULL, IDC_ARROW);  // загрузка стандартного курсора (посмотреть список курсоров!)
                                                // HCURSOR hCursor=LoadCursorFromFile(L"C:\\1.ani");
    wcl.hbrBackground = CreateSolidBrush(RGB(255, 120, 0));
    wcl.lpszMenuName = NULL;    // приложение не содержит меню
    wcl.lpszClassName = szClassWindow;  // имя класса окна
    wcl.hIconSm = NULL; // отсутствие маленькой иконки для связи с классом окна
 
                        // 2. регистрация класса окна
    if (!RegisterClassEx(&wcl))
        return 0; // при неудачной регистрации - выход
 
                  // 3. создание окна
                  // создается окно и переменной hWnd присваивается дескриптор окна
 
    HWND hWnd = CreateWindowEx(
        0,      // расширенный стиль окна (WS_EX_ACCEPTFILES, WS_EX_CLIENTEDGE)
        szClassWindow,  //имя класса окна
        L"Первое окно", // заголовок окна
        WS_OVERLAPPEDWINDOW,
 
        50, 50, rand() % 200 + 200, rand() % 200 + 200,
 
        NULL,           // дескриптор родительского окна (HWND_DESKTOP)
        NULL,           // дескриптор меню окна
        hInst,      // идентификатор приложения, создавшего окно
        NULL);      // указатель на область данных приложения
 
 
                    // 4. отображение окна
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd); // перерисовка окна
 
 
                        // 5. запуск цикла обработки сообщений
 
    MSG lpMsg;
    while (GetMessage(&lpMsg, NULL, 0, 0)) // получение очередного сообщения из очереди сообщений (пока не придёт WM_QUIT)
    { // выбирать любые сообщения из любых приложений
        TranslateMessage(&lpMsg);   // трансляция сообщения (потребуется для работы с клавиатурой)
        DispatchMessage(&lpMsg);    // диспетчеризация сообщений
    } // отправка сообщения оконной процедуре
    return lpMsg.wParam;
}
 
// функция вызывается ОС, не программой!
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
    static std::basic_string<TCHAR>str;
     
    switch (uMessage)
    {
    case WM_DESTROY: // сообщение о завершении программы
        PostQuitMessage(0); // посылка сообщения WM_QUIT
        break;
 
    case WM_CHAR:
    {
 
        while (true) 
        {
            rotate(str.begin(), str.begin() + 1, str.end());
            SetWindowText(hWnd, (LPCWSTR)"Hello world!!! ");
            Sleep(100);
            system("cls");
        }
         
  
    }
        break;
    default:
        // все сообщения, которые не обрабатываются в данной оконной функции 
        // направляются обратно Windows на обработку по умолчанию
        return DefWindowProc(hWnd, uMessage, wParam, lParam);
    }
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2016, 18:19
Ответы с готовыми решениями:

Иконка в заголовке приложения, меню, формы в Excel
Подскажите, пожалуйста, можно изменить иконки в заголовке приложения, в главном меню, и можно ли...

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

Возврат бегущей строки
Здравствуйте! Есть бегущая строка, активируется автоматически, как сделать так чтоб после того как...

Модуль бегущей строки
Нужен модуль бегущей строки в Joomla 2.5 Есть пробую - Произвольний HTML - потом вставлюя ето:...

2
4 / 4 / 5
Регистрация: 19.08.2016
Сообщений: 137
24.10.2016, 21:44 2
Есть рабочий код на языке ассемблера, скинуть?
0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
24.10.2016, 22:57  [ТС] 3
Nell_core, большое спасибо, мы его еще не учили и я вряд ли что то розберу там
0
24.10.2016, 22:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2016, 22:57
Помогаю со студенческими работами здесь

Создание бегущей строки.
Создать бегущую строку. Остановить бег строки при нажатии клавиши &lt;Esc&gt;. И если можно,...

Создание бегущей строки
Объясните, пожалуйста, каким образом можно создать бегущую строку.

индексация Бегущей строки
Здравствуйте! На одном из моих сайтов поступило критическое замечание (есть у меня такая опция,...

Создание бегущей строки
Необходимо создать программу, которая работает подобно бегущей строке Например: Слово Слов ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru