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

С++ для начинающих

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

Как вставить иконку в загаловке окна? - C++

04.10.2012, 00:14. Просмотров 424. Ответов 0
Метки нет (Все метки)

Доброго времени суток всем!

1. Создал проект
2. Создал заголовочный файл test.h
Содержимое:
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
#include "resource.h"
 
#define IDI_ICON1   101
 
HINSTANCE hInst;
HWND hWnd, hWnd_Ch; 
 
class CWin
    {
      public:
 
         //Функция обработки событий дочернего окна 
         static LRESULT CALLBACK ChildProc(HWND hwnd, UINT Message, WPARAM wparam,LPARAM lparam)
             {
                 if (Message == WM_DESTROY )
                     {
                         return 0;
                     }
                 
                 return DefWindowProc(hwnd,Message,wparam,lparam);
             }
 
         //Функция обработки событий окна
         static LRESULT CALLBACK WndProc(HWND hwnd, unsigned int msg, WPARAM wParam,LPARAM lParam)
             {
                 hWnd_Ch = hwnd;
 
                 if(msg==WM_DESTROY)
                     {
                         PostQuitMessage(0);
                         return 0L;
                     }
                 return (DefWindowProc(hwnd, msg, wParam, lParam));
             }
 
         void mwin(HINSTANCE hInst, int nCmdShow, DWORD WinStyleEx,
                   LPCTSTR WinName, DWORD WinStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, 
                   HMENU hMenu, LPVOID lpParam, LPCTSTR szClassName, int wColor, LPCTSTR lpCursorName, WNDPROC wPr)
                   {
 
                       WNDCLASSEX WindowClass;    //Создать объект класса окна
 
                       WindowClass.cbSize = sizeof(WNDCLASSEX);                         //Установить размер структуры
                       WindowClass.style = CS_HREDRAW | CS_VREDRAW;                     //Перерисовать окно при изменении размера  
                       WindowClass.lpfnWndProc = wPr;                               //Определить функцию - обработчик сообщений
                       WindowClass.cbClsExtra = NULL;                                   //Никаких дополнительных байт после структуры 
                       WindowClass.cbWndExtra = NULL;                                   //класса окна в экземпляре окна
                       WindowClass.hInstance = hInst;                               //Дескриптор экземпляра приложения
                       WindowClass.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON1)); //Пиктограмма приложения
                       WindowClass.hCursor = LoadCursor(0, lpCursorName);                  //Курсор окна
                       WindowClass.hbrBackground = static_cast<HBRUSH>(GetStockObject(wColor)); //Кисть, определяющая цвет окна
                       WindowClass.lpszMenuName = NULL;                                 //Указатель на имя ресурса меню 
                       WindowClass.lpszClassName = szClassName;                           //Установить имя класса
                       WindowClass.hIconSm = NULL;                                      //Малая пиктограмма, связанная с окном
 
                       RegisterClassEx(&WindowClass);
 
                       hWnd = CreateWindowEx(
                           WinStyleEx,                         //Улучшенный стиль окна 
                           szClassName,                          //Имя класса окна
                           WinName,                            //Заголовок окна
                           WinStyle,                           //Стиль окна - перекрываемое  
                           x,                                  //Позиция на экране по умолчанию
                           y,                                  //левого верхнего угла как х, y… 
                           nWidth,                             //Размер окна по умолчанию – ширина…
                           nHeight,                            //… и высота
                           hWndParent,                         //Нет родительского окна
                           hMenu,                              //Нет меню
                           hInst,                          //Дескриптор экземпляра программы
                           lpParam                             //Никаких данных для создания окна 
                           );
 
                       ShowWindow(hWnd, nCmdShow);           //Отобразить окно
                       UpdateWindow(hWnd);                   //Вызывает перерисовку клиентской области окна
                   }
 
          int mmwin(void)
          {
                       MSG msg;        //Структура сообщения Windows
 
                       while (GetMessage(&msg, 0, 0, 0) == TRUE)   //Получить сообщение
                           {
                               TranslateMessage(&msg);                   //Трансляция сообщения
                               DispatchMessage(&msg);                    //Диспетчеризация сообщения
                           }
                       
                       return static_cast<int>(msg.wParam);
          }
     };
3. Создал исходный файл test.cpp
Содержимое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <windows.h>
#include "test.h"
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    CWin cw1;
 
    cw1.mwin(hInst, nCmdShow, WS_EX_WINDOWEDGE,
             L"ParentWindow", WS_TILEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 
             NULL, NULL, NULL, L"ParentWindow", LTGRAY_BRUSH, IDC_ARROW, cw1.WndProc);
 
    cw1.mwin(hInst, nCmdShow, NULL,
             L"ChildrenWindow", WS_CHILD | WS_BORDER | WS_VISIBLE, 10, 10, 200, 200, 
             hWnd_Ch, NULL, NULL, L"ChildrenWindow", WHITE_BRUSH, IDC_HAND, cw1.ChildProc);
 
    cw1.mwin(hInst, nCmdShow, WS_EX_DLGMODALFRAME,
             L"ChildrenWindow1", WS_CHILD | WS_BORDER | WS_VISIBLE, 200, 200, 100, 100, 
             hWnd_Ch, NULL, NULL, L"ChildrenWindow1", BLACK_BRUSH, IDC_HAND, cw1.ChildProc);
 
    cw1.mmwin();
}
4. Добавил в ресурсы иконку.

Скомпилировал, проект запустился... рисует основное окно и два дочерних.

Вопрос - Подскажите, пожалуйста, как мне вывести иконку в заголовке окна? (Если создаю проект без заголовочного файла *.h, то там иконку могу вывести, а тут не получается )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 00:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как вставить иконку в загаловке окна? (C++):

Как вставить картинки в окна? - C++
int WINAPI WinMain(HINSTANCE hInst, // дескриптор экземпляра приложения HINSTANCE hPreviousInst, // LPSTR lpCommandLine, // запуск...

Можно ли изменить иконку окна во время выполнения программы? - C++
Можно ли изменить иконку окна во время выполненния программы?

Можно ли изменить иконку окна во время выполнения программы? - C++
Можно ли изменить иконку окна во время выполненния программы?

Как получить иконку файла? - C++
Мне нужны не те иконки, которые выгрызает из exe-шников и т.п. ExtractIcon(), а те иконки, которые Windows ассоциирует с различными типами...

Как задать свою иконку приложению? - C++
Всем привет !! ПОдскажите плизз как можно ехе файлу твоей программы можно задать иконку какую ты хочешь ?

Как менять иконку файла .exe? - C++
что нужно написать в коде с++, чтоб когда с++ сделает exe файл, то чтоб он имел иконку, которою я хочу?

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

Как привязать к консольному приложению иконку? - C++
Как назначить иконку консольному приложению? Чтоб как нормальная программа выглядела.

Как назначить моему exeшнику иконку? - C++
Есть у меня в проекте VC++ 6 один файл с текстом программы с расширением cpp, больше ничего научите пожалуйста как назначить моему...

Как можно поставить иконку программе? - C++
Подскажите как можно поставить иконку программе ? PS. не .Net

Как изменить иконку исполняемого файла - C++
Добрый день. Написал игру маленькую, консольную. Решил послать её другу. Но у экзешника не красивая иконка. Долго ползал на форуме...


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

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

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