На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> цвет надписи на кнопке, WinAPI
    Подскажите, как поменять цвет надписи на кнопке в WinAPI. Черный как-то не устраивает ;) :wall:
      WM_CTLCOLORBTN и SetTextColor()
        Пример (только не WM_CTLCOLORBTN, а WM_CLTCOLORSTATIC) можно глянуть здесь.
          Спасибо за ответы!!!!!!!!
          У меня есть еще один вопрос:а как можно проверить, надпись на какой именно кнопке я закрашиваю в определенный цвет?
          ExpandedWrap disabled
            case WM_CTLCOLORBTN:
                        {
                         HDC hdcButton14 = (HDC) wParam;
                          HBRUSH hb=CreateSolidBrush(RGB(189,190,198));
                         SetTextColor(hdcButton14,RGB(0,0,255));
                        SetBkColor(hdcButton14,RGB(189,190,198));
                         TextOut(hdcButton14,21,7,"*",1);
                         return (long)hb;
                  }

          А если теперь я хочу красить Button7?
          Заранее спасибо!
            Цитата

            if( ::GetDlgCtrlID( HWND( lParam)) == IDC_BUTTON_XXX)
            ...
              Цитата
              SunDay, 18.05.04, 17:26
              case WM_CTLCOLORBTN:
              {
              HDC hdcButton14 = (HDC) wParam;
              HBRUSH hb=CreateSolidBrush(RGB(189,190,198));
              SetTextColor(hdcButton14,RGB(0,0,255));
              SetBkColor(hdcButton14,RGB(189,190,198));
              TextOut(hdcButton14,21,7,"*",1);
              return (long)hb;
              }

              В выделенной строке ошибка. Brush надо либо создавать один раз, а потом подсовывать в CTLCOLORBTN, либо получать Brush по GetStockObject. В противном случае (из-за отсутствия DeleteObject) возникают утечки ресурсов GDI, что приводит в итоге к неправильному отображению окна приложения.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0255 ]   [ 16 queries used ]   [ Generated: 9.11.25, 04:17 GMT ]