Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / MessageBox цвет / 25 сообщений из 25, страница 1 из 1
28.02.2016, 12:29
    #39180767
Лизоблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
Как программно покрасить текст месседжа ?
...
Рейтинг: 0 / 0
28.02.2016, 13:19
    #39180777
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
В С++ изначально нет стандартов на проектирование UI.

Поэтому нужно уточнять под какую целевую ОС/платформу вы пишете ПО.
Gnome/GTK, KDE, Qt, Windows/GDI/Forms, e.t.c.
...
Рейтинг: 0 / 0
28.02.2016, 13:31
    #39180780
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
ЛизоблюдКак программно покрасить текст месседжа ?
Никак. Цвет диалогов это пользовательская настройка UI, программам в неё лучше не лезть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
28.02.2016, 17:40
    #39180866
Лизоблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
А так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
HHOOK g_Hook = NULL;
LRESULT CALLBACK CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam)
{
   LRESULT retval = CallNextHookEx(0, nCode, wParam, lParam);
   if ( nCode == HC_ACTION ) {
      CWPRETSTRUCT *msg = (CWPRETSTRUCT *)lParam;
      if ( msg->message == WM_CONTROLCOLORSTATIC ) {
           ....................... TODO
      }
   }
   return retval;
}
int CMyApp::DoMessageBox(LPCTSTR lpszPrompt, UINT nType, UINT nIDPrompt) 
{
   g_Hook = ::SetWindowsHookEx(WH_CALLWNDPROCRET, CallWndRetProc, NULL, 
      ::GetCurrentThreadId());
   int nRet = CWinApp::DoMessageBox(lpszPrompt, nType, nIDPrompt);
   if (g_Hook) ::UnhookWindowsHookEx(g_Hook);
   return nRet; 
}
...
Рейтинг: 0 / 0
28.02.2016, 22:20
    #39180986
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
Лизоблюд,
ты свихнулся уже похоже на смене цвета...

на кой это вообще делать, если можно просто тупо сделать свой собственный диалог вывода сообщения?
...
Рейтинг: 0 / 0
28.02.2016, 23:00
    #39180999
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
Вот это... это как? 50 лет эволюции кибернетики и вычислительной техники
прошли зря. Вот это 20 строк кода надо написать чтобы цвет текста
поменять?

Как-же Алан Тьюринг? Как-же Джон-Маккарти?

Их смерть была напрасной? Ради чего они вообще жили? Чтобы мы в 20 строк
меняли цвет MessageBox?

Душно мне... и тяжко. Пойду бухать.
...
Рейтинг: 0 / 0
28.02.2016, 23:06
    #39181000
Лизоблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
maytonВот это... это как? 50 лет эволюции кибернетики и вычислительной техники
прошли зря. Вот это 20 строк кода надо написать чтобы цвет текста
поменять?

Как-же Алан Тьюринг? Как-же Джон-Маккарти?

Их смерть была напрасной? Ради чего они вообще жили? Чтобы мы в 20 строк
меняли цвет MessageBox?

Душно мне... и тяжко. Пойду бухать.
Это тебе не Бейсик.
...
Рейтинг: 0 / 0
28.02.2016, 23:07
    #39181001
Лизоблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
MasterZivЛизоблюд,
ты свихнулся уже похоже на смене цвета...

на кой это вообще делать, если можно просто тупо сделать свой собственный диалог вывода сообщения?
Ларису Ивановну хачу!!!

Хочу месседж красным цветом, когда сообщение плохое.
...
Рейтинг: 0 / 0
29.02.2016, 02:19
    #39181027
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
Лизоблюд,

mb_iconstop недостаточно заметно?
...
Рейтинг: 0 / 0
29.02.2016, 06:26
    #39181044
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
ЛизоблюдА так:Ты понимаешь, что этот код делает? :) Он, вообще, на глаз, рабочий. Но если ты его применишь, как есть, ты огребёшь проблем. Поэтому сначала лучше разобраться и понять, что тут каждая строчка неправильно делает
maytonДушно мне... и тяжко. Пойду бухать. ж)
MasterZivна кой это вообще делать, если можно просто тупо сделать свой собственный диалог вывода сообщения? Хотел я ответить: "для единообразия", но вовремя передумал :)
...
Рейтинг: 0 / 0
29.02.2016, 09:49
    #39181100
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
ЛизоблюдЛарису Ивановну хачу!!!а есть какая то религия, запрещающая использовать тег SRC при оформлении сообщения на форуме? можно ознакомиться с постулатами?
...
Рейтинг: 0 / 0
01.03.2016, 17:45
    #39182887
Alca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
...
Рейтинг: 0 / 0
01.03.2016, 17:46
    #39182889
Alca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
...
Рейтинг: 0 / 0
02.03.2016, 09:19
    #39183253
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
Смотри в сторону WM_CTLCOLORDLG
А вообще непонятно что это за окно WIN API или библиотека какая.
...
Рейтинг: 0 / 0
02.03.2016, 10:40
    #39183341
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
Малыхин СергейСмотри в сторону WM_CTLCOLORDLG
А вообще непонятно что это за окно WIN API или библиотека какая.

Где ты WM_CTLCOLORDLG будешь обрабатывать? Оно обрабатывается в окне-родителе элемента UI, который нужно
раскрасить. А это в случае MessageBox окно MessageBox, оно системное, и его функция окна тоже системая, можно только
хуками ловить, но всё равно остаётся один главный вопрос -- НАФИГА ?
Если аналог окна MessageBox делается за час, хороший -- за 3 дня..
...
Рейтинг: 0 / 0
02.03.2016, 14:12
    #39183754
Лизоблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
MasterZivМалыхин СергейСмотри в сторону WM_CTLCOLORDLG
А вообще непонятно что это за окно WIN API или библиотека какая.

Где ты WM_CTLCOLORDLG будешь обрабатывать? Оно обрабатывается в окне-родителе элемента UI, который нужно
раскрасить. А это в случае MessageBox окно MessageBox, оно системное, и его функция окна тоже системая, можно только
хуками ловить, но всё равно остаётся один главный вопрос -- НАФИГА ?
Если аналог окна MessageBox делается за час, хороший -- за 3 дня..
Хочу еще рамочку под золото забабахать.
...
Рейтинг: 0 / 0
02.03.2016, 14:15
    #39183755
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
ЛизоблюдХочу еще рамочку под золото забабахать.
остальные проблемы стало быть решены?
...
Рейтинг: 0 / 0
04.03.2016, 11:23
    #39185745
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
Ага, рамку из золота, а потом мне сидеть перед всякими нокия-хренокия-киас-тюнсами, которые все расскрашены, как новогодняя елка в кремлевском дворце съездов, но при этом умудряются нихрена не работать или даже тупо падают в seqfault.

я бы реально таких деятелей, что это все делают, расстреливал бы (в профессиональном смысле).

главное, качаешь это говно полчаса, ибо 20 гигабайт, ставишь еще полчаса, оно запускается и тут же - шмяк - в койку.

а делать должна только импорт номеров телефонов из аппарата.

ваще слов нет.
...
Рейтинг: 0 / 0
04.03.2016, 12:05
    #39185808
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
Красивее всего драйвера ставились для видях Nvidia и сканеров HP в 98м году.
Берёшь значить компаХт диск. Запускаешь экзешник. А там - красотища.
И всякие анимированные окошки. И музыка звучит. И в режиме визарда
всё ставится. Только дави next->next...

А в конечном счёте тоже самое я стал делать через панель управления,
установка дров e.t.c. и кликал на inf-файлик. А потом вообще в эпоху
этих ваших интернетов windows завёл репозитарий дров и эти нарядные
сопутствующие компакт-диски я стал сразу выбрасывать в мусорное ведро.
...
Рейтинг: 0 / 0
04.03.2016, 12:48
    #39185842
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
- Набора контролов в виндах хватает для 99% случаев. Если контролов не хватает - проблемы в архитектуре.
- Стандартного GUI(API) винды вообще хватает для нормального отображения любой информации для юзера. Тут всё строже, лучше сильно придерживаться этого стандарта (т.е. никак не велосипедить)
...
Рейтинг: 0 / 0
04.03.2016, 12:51
    #39185849
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
Вот у меня десятка стоит. И тут уже таких бантиков сбоку понакручено - мама не горюй.
И tiles, и ribbons. И окна с text search. Похоже от строгости мы уже отказались.

Не знаю насколько они стандартны - но наверное уже являются частью GDI.
...
Рейтинг: 0 / 0
04.03.2016, 13:11
    #39185872
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
maytonНе знаю насколько они стандартны - но наверное уже являются частью GDI.
GDI/Direct2D/Direct3D - это инcтрумент для рисования хрени

хрень живёт в shell и экстеншнах
...
Рейтинг: 0 / 0
04.03.2016, 15:28
    #39186004
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
maytonВот у меня десятка стоит. И тут уже таких бантиков сбоку понакручено - мама не горюй.
И tiles, и ribbons. И окна с text search. Похоже от строгости мы уже отказались.

Не знаю насколько они стандартны - но наверное уже являются частью GDI.


мне как раз кажется Win10 наоборот наведет порядок с этим делом, у них теперь в моде очень простой и понятный интерфейс.
...
Рейтинг: 0 / 0
04.03.2016, 21:56
    #39186244
Лизоблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
М-м-м-дя! Тему пора на ПТ переносить.
...
Рейтинг: 0 / 0
05.03.2016, 03:28
    #39186300
Лизоблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageBox цвет
http://www.codeguru.com/cpp/w-p/win32/messagebox/article.php/c14605/Fancy-Custom-MessageBox.htm

Introduction
One of the most used Windows API functions is MessageBox. You easily can set its contents (caption, text, and buttons) and behavior (application, task, or system modal) but it's not flexible enough to allow changing, for example, its appearance. Of course, you can make your own dialog box, based on a dialog resource template, but this is not always the handiest choice. This article shows a simple method for customizing a message box's appearance, but not only the appearance.

Here is an example of message box with a custom background (it can be your company logo as well) and changed text color.


A First Try
After searching SDK headers, some people could be tempted to handle the WM_CTLCOLORMSGBOX message (not documented but defined in WINUSER.H). It seems to be destined, like the other WM_CTLCOLORxxx messages (WM_CTLCOLORSTATIC, WM_CTLCOLOREDIT, and so forth), to be sent to the parent window when a message box is about to be drawn. Then, it's just "a walk in the park" to change the message box text color, backround color, and so on.

That's no use! You can try handling WM_CTLCOLORMSGBOX as in the following example and see that the WM_CTLCOLORMSGBOX message is never sent.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
BOOL CALLBACK DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam,
                         LPARAM lParam)
{
   switch(uMsg)
   {
      //...
      HANDLE_hWnd, WM_CTLCOLORMSGBOX, Dlg_OnCtlColorMsgBox;
   }
   return FALSE;
}
 
HBRUSH Dlg_OnCtlColorMsgBox(HWND hWnd, HDC hdc, HWND hWndChild,
                            int type)
{
   HBRUSH hbr = NULL;
   // Just for testing WM_CTLCOLORMSGBOX message.
   if(CTLCOLOR_MSGBOX == type)
   {
      // hbr = ... get a valid brush handle to return ...
      // But it NEVER enters here!!!
   }
   return hbr;
}


What Can be Done?
One idea is to trap the dialog box creation to subclass it, and then use the application-defined window procedure to handle messages that allow changing the appearance like in any other dialog window procedure. For that, you can use a CBT (computer-based training) hook.

CbtHookProc: the CBT Hook Procedure
Here is the implementation of the hook procedure:

Код: plaintext
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.
LRESULT CALLBACK CbtHookProc(int nCode, WPARAM wParam,
                             LPARAM lParam)
{
   if(nCode < 0)
   {
      return ::CallNextHookEx(cmbv.hHook, nCode, wParam, lParam);
   }
   switch(nCode)
   {
   case HCBT_CREATEWND:    // a window is about to be created
      {
         LPCBT_CREATEWND lpCbtCreate = (LPCBT_CREATEWND)lParam;
         if(WC_DIALOG == lpCbtCreate->lpcs->lpszClass)
         {
            // WC_DIALOG is the class name of message box but it
            // has not yet had a window procedure set.
            // So keep in mind the handle to sublass it later when
            // its first child is about to be created.
            cmbv.hWnd = (HWND)wParam;
         }
         else
         {
            if((NULL == cmbv.lpMsgBoxProc) && (NULL != cmbv.hWnd))
            {
               // subclass the dialog 
               cmbv.lpMsgBoxProc = 
                  (WNDPROC)::SetWindowLong(cmbv.hWnd, GWL_WNDPROC,
                     (LONG)CustomMessageBoxProc);
            }
         }
      }
      break;
   case HCBT_DESTROYWND:    // a window is about to be destroyed
      {
         if(cmbv.hWnd == (HWND)wParam)    // it's our messge box
         {
            // so set back its default procedure
            ::SetWindowLong(cmbv.hWnd, GWL_WNDPROC,
                            (LONG)cmbv.lpMsgBoxProc);
         }
      }
   }
   return 0;
}


You can observe a little trick in the code above: The dialog box is not subclassed when its own creation is signaled. That's because, at that time, it has not yet associated a procedure. You know that any message box contains at least one control, so you subclass it a little bit later, when its first child is about to be created.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / MessageBox цвет / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]