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

Как изменить цвет окна приложения? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как поместить в Picture bmp картинку с цветовой палитрой 32 бита. http://www.cyberforum.ru/cpp-beginners/thread467834.html
Подскажите начинающему. Как проще всего поместить в Picture bmp-картинку с цветовой палитрой 32 бита. Заранее благодарен
C++ Очистка IE coockies, IE cashe, IE address line history Подскажите пожалуйста как программно осуществить сабж? Или хотя бы в каком направлении копать. Заранее благодарен. http://www.cyberforum.ru/cpp-beginners/thread467822.html
C++ Как получить список пользователей на mail.ru?
Как получить список пользователей на mail.ru
Перекрытие операторов C++
Help me! Help me please!!! :-) Есть такая конструкция: class MyClass{ ... long* fItems; //массив для хранения указателей на строки .... public:
C++ Передача строки в методе COM объекта http://www.cyberforum.ru/cpp-beginners/thread467764.html
Имеется HRESULT q(BSTR *q1); STDMETHODIMP CSomeClass::q(BSTR q1) { *q1 = (BSTR)'Some string'; return S_OK; }Все компилится отлично В VB прицепляю этот COM и пытаюсь получить строку
C++ Киньте исходник проги на API на мэйл. Киньте исходник какой - нибудь проги на API под Windows... POPSA@MAIL.RU подробнее

Показать сообщение отдельно
Vita
Сообщений: n/a
10.06.2008, 10:31     Как изменить цвет окна приложения?
WM_SYSCOLORCHANGE сообщение посылается всем top-most окнам при изменении системной палитры цветов.
WM_CTLCOLOR сообщение посылается в функцию окна диалога при запросе цвета конкретного контрола на диалоге. Иногда и конкретные WM_CTLCOLORMSGBOX, WM_CTLCOLOREDIT, WM_CTLCOLORLISTBOX, WM_CTLCOLORBTN, WM_CTLCOLORDLG, WM_CTLCOLORSCROLLBAR, WM_CTLCOLORSTATIC и т.д.
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
static HBRUSH WndDlgProcCTLCOLOR( HWND hwnd, HDC hdc, HWND hwndChild, int type )
{
    BOOL i;
    switch( type )
    {
 
    case CTLCOLOR_EDIT:
    case CTLCOLOR_LISTBOX:
 
        if( (i = IsWindowEnabled( hwndChild )) != 0 )
            SetTextColor( hdc, GetSysColor( COLOR_WINDOWTEXT ) );
        else
        {
            WORD vrsion;
            vrsion = LOWORD( GetVersion() );
            if( LOBYTE( vrsion ) >= 3 && HIBYTE( vrsion ) > 20 )
                SetTextColor( hdc, GetSysColor( COLOR_GRAYTEXT ) );
            else
                SetTextColor( hdc, GetSysColor( COLOR_BTNTEXT ) );
        }
        SetBkColor( hdc, GetSysColor( (i) ? COLOR_WINDOW : COLOR_BTNFACE ) );
        return (i) ? ci_brushWindow : ci_brushBackGround;
 
    case CTLCOLOR_BTN:
    case CTLCOLOR_STATIC:
    case CTLCOLOR_MSGBOX:
    case CTLCOLOR_DLG:
 
        if( IsWindowEnabled( hwndChild ) )
            SetTextColor( hdc, GetSysColor( COLOR_WINDOWTEXT ) );
        else
        {
            WORD vrsion;
            vrsion = LOWORD( GetVersion() );
            if( LOBYTE( vrsion ) >= 3 && HIBYTE( vrsion ) > 20 )
                SetTextColor( hdc, GetSysColor( COLOR_GRAYTEXT ) );
            else
                SetTextColor( hdc, GetSysColor( COLOR_BTNTEXT ) );
        }
        SetBkColor( hdc, GetSysColor( COLOR_BTNFACE ) );
        return ci_brushBackGround;
 
    }
 
    #if defined( __NT__ )
        return (HBRUSH) DefDlgProc( hwnd, GET_WM_CTLCOLOR_MSG(type), (WPARAM) hdc, (LPARAM) hwndChild );
 
    #else
 
        return (HBRUSH) DefDlgProc( hwnd, WM_CTLCOLOR, (WPARAM) hdc, MAKELPARAM(hwndChild, type) );
 
    #endif
 
}
static BOOL WndDlgProcCOLORCHANGE( HWND hwnd, BOOL reassign )
{
    if( ci_brushBackGround )
        DeleteObject( ci_brushBackGround );
    ci_brushBackGround = (reassign) ? CreateSolidBrush( GetSysColor( COLOR_BTNFACE ) ) : NULL;
 
    if( ci_brushWindow )
        DeleteObject( ci_brushWindow );
    ci_brushWindow = (reassign) ? CreateSolidBrush( GetSysColor( COLOR_WINDOW ) ) : NULL;
 
    return FALSE;
}
Которые вызываются при обработке сообщений в функции окна-диалога:
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
        switch ( msg )
        {
 
        case WM_CREATE:         // ex2crea.ci
 
            WndDlgProcINITMENUPOPUP( hWnd, GetSystemMenu( hWnd, FALSE ), 0, TRUE );
            WndDlgProcCOLORCHANGE( hWnd, TRUE );
            break;
 
    #if defined( __NT__ )
 
        case WM_CTLCOLOREDIT: // ex2ctlc.ci
 
            stopit = TRUE;
            ret = (LRESULT) WndDlgProcCTLCOLOR(
                hWnd, (HDC) wParam, (HWND) lParam, CTLCOLOR_EDIT );
            break;
 
        case WM_CTLCOLORLISTBOX: // ex2ctlc.ci
 
            stopit = TRUE;
            ret = (LRESULT) WndDlgProcCTLCOLOR(
                hWnd, (HDC) wParam, (HWND) lParam, CTLCOLORLISTBOX );
            break;
 
        case WM_CTLCOLORBTN: // ex2ctlc.ci
 
            stopit = TRUE;
            ret = (LRESULT) WndDlgProcCTLCOLOR(
                hWnd, (HDC) wParam, (HWND) lParam, CTLCOLORBTN );
            break;
 
Текущее время: 11:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru