Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/50: Рейтинг темы: голосов - 50, средняя оценка - 4.58
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320

CreateWindows (STATIC)

28.07.2012, 02:01. Показов 10792. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создаю компонент - текстовая строка по руски на форме таким образом но чета не получаеться

C++
1
2
3
4
5
6
hText = CreateWindow( "STATIC", "Static Text",
                                       WS_CHILD | WS_VISIBLE | SS_LEFT,
                                       10, 10, 100, 15,
                                       hWnd,
                                       NULL,
                                       NULL, NULL );
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.07.2012, 02:01
Ответы с готовыми решениями:

Как правильно разместить static поверх других static-ов
Есть кнопка, нажимая на которую становится видно статик. проблема в том, что статик отображатеся сзади других статиков и кнопок. как...

Цвет отдельного Static в массиве Static'ов
Здравствуйте ! Столкнулся с такой проблемой. Есть у меня массив статиков HWND a; Мне нужно случайным образом поменять цвет двух...

Почему static char []
Здравствуйте. Почему char szAppName = "HelloWin" как static? Не могу понять в чем смысл, туплю. Спасибо. ...

11
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
28.07.2012, 13:16
Что именно не получается? Не отображается контрол? Не отображается текст? Не компилируется?
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
28.07.2012, 13:37  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Что именно не получается? Не отображается контрол? Не отображается текст? Не компилируется?
не видно текста, может и не отображаеться. Из за отсутствия опыта возникает проблемма что лучше -
создать контрол STATIC или проще нарисовать текст???? а как задать его цвет шрифт hfont
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
28.07.2012, 14:35
Цитата Сообщение от n971030 Посмотреть сообщение
не видно текста
Ну, не знаю. Все нормально видно (проверь, хватает ли у тебя ширины статика, чтобы отобразить текст):
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
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_CREATE:
            hFont = CreateFont(-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE,
                               0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
                               CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                               DEFAULT_PITCH | FF_SWISS, L"Tahoma");
            hText = CreateWindow(L"STATIC", L"Статик контрол",
                                 WS_CHILD | WS_VISIBLE | SS_LEFT,
                                 10, 10, 200, 15,
                                 hwnd, NULL, NULL, NULL);
            SendMessage(hText, WM_SETFONT, (WPARAM)hFont, 0);
            break;
        case WM_DESTROY:
            PostQuitMessage (0);
            break;
        default:
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
Изображения
 
2
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 21
04.11.2012, 23:35
Цитата Сообщение от UI Посмотреть сообщение
Ну, не знаю. Все нормально видно (проверь, хватает ли у тебя ширины статика, чтобы отобразить текст):
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
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_CREATE:
            hFont = CreateFont(-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE,
                               0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
                               CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                               DEFAULT_PITCH | FF_SWISS, L"Tahoma");
            hText = CreateWindow(L"STATIC", L"Статик контрол",
                                 WS_CHILD | WS_VISIBLE | SS_LEFT,
                                 10, 10, 200, 15,
                                 hwnd, NULL, NULL, NULL);
            SendMessage(hText, WM_SETFONT, (WPARAM)hFont, 0);
            break;
        case WM_DESTROY:
            PostQuitMessage (0);
            break;
        default:
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}


Господа, а как в данном примере сделать метку статика в цвет формы(прозрачной) если HBRUSH hbrBackground выбран нестандартным!?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
05.11.2012, 00:56
Лови WM_CTLCOLORSTATIC, который статик высылает родителю при перерисовке, и возвращай NULL_BRUSH:
C++
1
2
3
4
5
        case WM_CREATE:
        // ...
        case WM_CTLCOLORSTATIC:
            SetBkMode((HDC)wParam, TRANSPARENT);
            return (LRESULT)GetStockObject(NULL_BRUSH);
1
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 21
06.11.2012, 12:51
Цитата Сообщение от UI Посмотреть сообщение
Лови WM_CTLCOLORSTATIC, который статик высылает родителю при перерисовке, и возвращай NULL_BRUSH:
C++
1
2
3
4
5
        case WM_CREATE:
        // ...
        case WM_CTLCOLORSTATIC:
            SetBkMode((HDC)wParam, TRANSPARENT);
            return (LRESULT)GetStockObject(NULL_BRUSH);
UI, спасибо, а как избавиться от заливки этим цветом в элементах edit в которые передается текст посредством SetWindowText!?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
06.11.2012, 13:38
Можно посмотреть, как именно ты создаешь окно с нестандартным цветом заливки, как создаешь EDIT, и как в него пытаешься писать данные? Потому что у меня не мешает цвет заливки окна совершенно, нигде он не проявляется в EDIT-е:

C++
1
2
3
        case WM_LBUTTONDOWN:
            SetWindowText(hEdit, L"test me");
            break;
Изображения
 
2
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 21
06.11.2012, 22:55
Указываю в стандартном окне класса цвет формы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ATOM MyRegisterClass(HINSTANCE hInstance)
{
    WNDCLASSEX wcex;
 
    wcex.cbSize = sizeof(WNDCLASSEX);
 
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_TEST));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+24);
    wcex.lpszMenuName   = MAKEINTRESOURCE(IDC_TEST);
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
 
    return RegisterClassEx(&wcex);
}
Далее тут создаю прямоугольник с округлыми углами и в него вписываю еще один, внутри распологаются edit'ы и static'и:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
case WM_PAINT:
        hdc = BeginPaint(hWnd1, &ps);
        // TODO: добавьте любой код отрисовки...
 
        kk.left=5;
        kk.right=670;
        kk.bottom=40;
        kk.top=215;
        
        kz.left=5;
        kz.right=670;
        kz.bottom=5;
        kz.top=37;
 
        //Rectangle(hdc,3,30,600,600); // Рисование прямоугольника 
        //RoundRect(hdc,0,0,675,220,10,10);// Рисование прямоугольника с закругленными углами
        //RoundRect(hdc,5,5,10,10,10,10);
        
        FillRect(hdc,&kk,(HBRUSH)(COLOR_WINDOW+23)); // Закрашивает выделенное поле(left,right,buttom,top)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
07.11.2012, 00:19
Это что за обрывки кода? Не задумывался никогда, почему я привожу функцию окна полностью? А чтобы можно было свою закомментировать, а ту, что я привел - подставить и проверить, увидеть проблему или увидеть, что ее нет.

А как я должен увидеть ту проблему, что есть у тебя, если не вижу её? (вот не вижу, и всё тут. Потому что КАК ИМЕННО ты создаешь эдит, что у тебя цвет окна мешает, ты так и не показал. У меня, при правильно созданном контроле, ничего не мешает). Будет полный код функции окна, который иллюстрирует проблему (скопировал к себе - запустил - увидел где что не так), а не огрызки - будем продолжать разговор... Восстанавливать телепатически тот код, который ты не соизволил привести я желания не имею.
0
6 / 6 / 0
Регистрация: 13.05.2012
Сообщений: 593
02.04.2013, 01:44
А как сделать вдавленый в статик эдит?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
02.04.2013, 11:16
CreateWindowEx(WS_EX_CLIENTEDGE, ...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2013, 11:16
Помогаю со студенческими работами здесь

CheckBox и Static Text
у меня двойной вопрос. Мне нужно что бы при нажатии флажка выводилась надпись (static text) и второй вопрос соестенно как создать сам текст...

Перерисовка контрола static
В общем ситуация же как и у этого человека ...

Прозрачный label (STATIC)
Здравствуйте! Отлавливаю сообщение case WM_CTLCOLORSTATIC: { HDC hdcStatic = (HDC) wparam; SetBkMode(hdcStatic,...

Вывод текста в Static
Добрый вечер! Я только начал изучать WinApi. Вообщем, есть два эдита, кнопка и статик. Мне нужно сделать обработчик на кнопку: в статик...

Работа с Static Text
Подскажите, пожалуйста, почему при создании дескриптора элемента Static Text не опознается его ID HWND sts ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru