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

C++

Войти
Регистрация
Восстановить пароль
 
Leardjiny
0 / 0 / 1
Регистрация: 22.09.2013
Сообщений: 135
#1

Переименовать окно приложения - C++

10.06.2014, 13:39. Просмотров 489. Ответов 0
Метки нет (Все метки)

Добрый день.
Хочу сделать, чтобы в том случае, если приложение было открыто несколько раз, то их названия писались по разному:
1е окно - "App", 2 окно - "App[2]", 3 окно "App[3]" и т.д.

Пытаюсь делать следующим образом:

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
HWND window_op;
window_op = FindWindow(NULL, L"App");
 
if (window_op)
{
    int num = 1;
    while()
    {
        CString app_num;
        app_num.Format(L"App[%d]", num);    
        window_op = FindWindow(NULL, app_num);
        if(window_op)
        {
            num++;
        }
        else
        {
            app_num.Format(L"App[%d]", num);    
            HWND hwnd = NULL;
            hwnd = GetForegroundWindow();
            SetWindowText(hwnd,app_num);
            break;
        }
    }
}
Но это не работает. Подскажите пожалуйста что не так.
Сейчас пишет, что функция FindWindow возвращает не HWND а CWnd*.
И пишет, что функция SetWindowText имеет только один аргумент типа LPCSTR.

Добавлено через 8 минут
Все, разобрался... все дело было в том, что у меня основное приложение создавало диалоговое окно (как раз CWnd*), в котором и находится функционал.
И получалась ситуация, что из стартового класса все работало, но название изменить не выходило, т.к. диалога либо еще не существовало, либо уже был закрыт.
А из самого диалога функции работали по другому.

Сделал так:

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
//Начальное окно:
    int num = 0;
    HWND window_op;
    window_op = FindWindow(NULL, L"App");
    if (window_op)
    {
        num=2;
        while(1)
        {
            CString app_num;
            app_num.Format(L"App[%d]", num);    
            window_op = FindWindow(NULL, app_num);
            if(window_op)
            {
                num++;
            }
            else
            {
                
                break;
            }
        }
    }
    
    CBinServerDlg dlg;
    dlg.m_number_oppened = num;
    m_pMainWnd = &dlg;
 
    INT_PTR nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
    }
    else if (nResponse == IDCANCEL)
    {
    }
 
 
//В функции Init самого диалога
    CString app_num;
    if (m_number_oppened != 0)
    {
        app_num.Format(L"App[%d]", m_number_oppened);    
        SetWindowText(app_num);
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2014, 13:39     Переименовать окно приложения
Посмотрите здесь:

Подскажите, как скрыть окно приложения из Диспетчер задач -> Приложения? - C++ WinAPI
Чтобы его скрыть из панели задач делаю так HWND wnd = Form2->Handle; ShowWindow(wnd, SW_HIDE); SetWindowLong(wnd, GWL_EXSTYLE,...

Не выводится окно приложения - C++ WinAPI
#include "windows.h" LRESULT __stdcall WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { ...

Не появляется окно приложения - C++ WinAPI
Начал изучать WinAPI и С++ по книжке Литвиненко Н.А. - Технология программирования на С++. Win32 API-приложения. Там дан первый пример...

Окно приложения создается и зависает - C++ WinAPI
При создании окна WINAPI окно создается, и зависает! Visual Studio 2013 показывает что приложение работает, но если запускать от программы,...

Передача сообщений в окно приложения - C++ WinAPI
Добрый день. Есть приложение, которое запускается моей программой. Далее это приложение выдает окно для ввода пароля. Хочу сделать так,...

Определить активно ли окно приложения в dll - C++ WinAPI
Подскажите, как определить активно ли окно приложения через dll.

Запуск приложения или дочернее окно - C++ WinAPI
Ситуация такова: есть приложение "А", с главным окном "М". Есть приложение "Б"(со своим окном). Как можно запустить Б по нажатию...

Окно поверх приложения в полноэкранном режиме - C++ WinAPI
Здравствуйте. Помогите создать самое простое, пустое окошко поверх всех окон, в том числе приложения, запущенного в браузере в режиме...

Текущее активное окно MDI-приложения - C++ Builder
Как выяснить текущее активное окно в (TForm) MDI-приложении? Поиском что-то не нашёл, может оно правильно другими словами называется

Можно ли создать окно из консольного приложения - C++
Допустим имеется программа, работающая в консоли, как из этой программы в определенный момент времени(например при желании пользователя)...


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

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

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