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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно доработать программу, что бы считала кол-во спичек. Текст задания ниже http://www.cyberforum.ru/cpp/thread1204197.html
Разработать программную модель следующей игры двух игроков(пользователь-компьютер),реализовав выигрышную стратегию для компьютера:На стол выкладываются 50 спичек.Каждый игрок по очереди вынимает спички из кучи,по меньшей мере,1 и не более 6.Кто берет последнюю спичку,тот выигрывает. #include<iostream.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> void main() { int a,b,k,p,m;...
C++ Логическое высказывание если дано логическое выражение, в котором все сокращается, какой будет ответ? Выполнимо, общезначимо, невыполнимо... http://www.cyberforum.ru/cpp/thread1203587.html
Сумма кодов символов: подсчёт с помощью ассемблерной вставки C++
Всем привет, нужно написать программу на С++ с ассемблерной вставкой , которая будет находить сумму кодов символов, находящихся между символами с индексами, определенными пользоваетелем, в исходной строке, введенной пользователем. Понять как это сделать я не особо могу, поэтому кто поможет буду премного благодарен!!!!!
C++ Разбить подсчет арифметической прогрессии на несколько потоков
#include <windows.h> #include <iostream> using namespace std; CRITICAL_SECTION cs; int e; int sh; int col; int mas;
C++ На печать выдать слова, имеющие больше одной буквы «е» http://www.cyberforum.ru/cpp/thread1202923.html
Дана строка. На печать выдать слова, имеющие больше одной буквы «е». С++ Помогите пожалуйста. Добавлено через 3 минуты help! Добавлено через 6 минут help
C++ Вычисление наибольшей общей последовательности двух байтовых последовательностей методом динамического програм вычисление наибольшей общей последовательности двух байтовых последовательностей методом динамического программирования. Результаты выводятся на экран. Байтовые последовательности должны быть получены из файла. При выводе байты представляются в HEX подробнее

Показать сообщение отдельно
Leardjiny
0 / 0 / 1
Регистрация: 22.09.2013
Сообщений: 124
10.06.2014, 13:39     Переименовать окно приложения
Добрый день.
Хочу сделать, чтобы в том случае, если приложение было открыто несколько раз, то их названия писались по разному:
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);
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru