Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

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

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

10.06.2014, 13:39. Просмотров 546. Ответов 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);
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2014, 13:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переименовать окно приложения (C++):

Разработка web-приложения, приложения под ОС Android,Windows - C++
Доброго времени суток ребят, кто узрел эту тему прошу не проходите мимо, прошу вашей помощи.Мне требуется определиться с темой для...

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

Вывести окно с сообщением во время запуска приложения - C++ Builder
Подскажите если не влом. Сам что-то пока не догадался. В приложении в FormCreate запускается некий сравнительно длительный процесс и форма...

Как создать окно справки для своего приложения? - C++ Builder
подскажите, пожалуйста, леплю интерфейс, как подключить при нажатии f1 справку, или вообще как писать справку?

Как нажать клавишу у чужого приложения,если в данный момент активно другое окно? - C++ Builder
Подскажите как нажать клавишу у чужого приложения, если активно другое окно? Пробовал сделать вот так if (HWND h1 =...

как переименовать файл - C++ Builder
Здравствуйте,объясните как в бильдере создать событие которое будет перименовывать опредленный файл, но не просто перименовывать например...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2014, 13:39
Привет! Вот еще темы с ответами:

как переименовать файл - C++ Builder
как перейменовать файл table.txt в table1.txt

RenameFile. Переименовать не получается. - C++ Builder
Получаю путь файла, режу и делаю новый путь. Потом пытаюсь переименовать. AnsiString sOLD = lV->Items->Strings, sNEW =...

Вызов вкладки переименовать - C++ Builder
Здравствуйте!!! В ОС Виндовс, когда на файле жмёшь правой кнопкой то в всплывающем окне есть вкладка Переименовать!! как мне её...

FindWindowEx() и переименовать текст с Win32API - C++ Builder
Здрасте ребят! Мне нужен помощ! Так вот, я хочу найти окна с помощию FindWindowEx() ну как найти родителское окна знаю но вот на...


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

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

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