![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Проблема в следующем. При упоминании некоторых констант ( DC_BRUSH, например) и функций из wingdi.h компилер говорит, что это undeclared identifier. Работаю на: WinXP, VC++ 6.0. gdi32.lib линкуется. [code=cpp] #include "windows.h" #include "windowsx.h" #include <commctrl.h> #include "resource.h" #include "time.h" #include "stdlib.h" #include "math.h" #include "string.h" #include "winuser.h" #include "wingdi.h" .......... //если в Эдит "1", то красим его одним цветом, иначе - другим. HBRUSH Test_OnCtlColor(HWND hwnd, HDC hdc, HWND hwndChild, int type){ int id=GetDlgCtrlID(hwndChild); LPTSTR c; if ((id>=ID_ED)&&(id<=(ID_ED+31))){ SetBkMode(hdc, TRANSPARENT); GetWindowText(hwndChild,c,1); if (c=="1") SetDCBrushColor(hdc, RGB(20,30,0)); else SetDCBrushColor(hdc, RGB(120,0,0)); } return br_edit; } Кто подскажет? |
|||
|
||||
| Fixin |
|
||||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Так нельзя! Это делается с помощью функции lstrcmp(buf, "1"); Если == 0, значит строки совпадают. И строка у тебя не имеет размера - только указатель. Прлще сделать по старинке:
Сделали буфер приема. Все в угловых скобках! В кавычках только те заголовочники, которые лежат в папке с проектом, обычно они же и являются "самодельными". И вообще:
Добавлено @ 09:51 Попробуй все это исправить, а потом расскажешь, помогло или нет. |
||||
|
|||||
| Тутанхамец |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Нла... облажался... про заголовочники не знал, а вот насчет == знал прекрасно, но не так-то просто забыть бейсик...
Спасибо за дебаггинг. Процедура заработала, но проблема с SetDCBrushColor осталась! Компилятор просто не знает такой функции, хотя в wingdi.h она объявлена. В коде ниже я возвращаю разные кисти, но хотелось бы обойтись одной и только менять цвет.
Добавлено @ 10:13 А вот это вот из wingdi.h...
Это ведь значит в WinXP оно должно объявиться, так? |
||||
|
|||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
ага. в самом начале проги пишешь (до заголовочников!):
В новых студиях это само собой разумеется. Добавлено @ 10:22 А чего на VB.NET не пошел? |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Заработало вот в таком вот виде:
thanks! Добавлено @ 10:30 Чего на VB.NET не пошел... Черт его знает. Как говорил Каннибал Лектер (или как его там звали): "всегда интересно пробовать новое". ) |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Ганни он был кажись
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |