007wan |
Отправлено: 26 Апреля, 2019 - 16:02:04
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
А остальные? Просто я потом буду знать как их "превращать"
(Добавление)
Идея как сделать цветные статики, эдит, комбо итд.
Используя CreateSolidBrush function
И Цитата: WM_CTLCOLORMSGBOX
WM_CTLCOLOREDIT
WM_CTLCOLORLISTBOX
WM_CTLCOLORBTN
WM_CTLCOLORDLG
WM_CTLCOLORSCROLLBAR
WM_CTLCOLORSTATIC[ WM_CTLCOLORSTATIC message]
(Добавление)
А значит и CODE: SetTextColor((HDC)wParam, RGB(255, 0, 0)); |
|
|
Zireael |
Отправлено: 27 Апреля, 2019 - 01:26:25
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: А остальные?
Остальные точно также, сравнить 2 строки и найти отличия не составит труда.
Цитата: Идея как сделать цветные статики, эдит, комбо итд.
Цитата: WM_CTLCOLORSTATIC
Return value
If an application processes this message, the return value is a handle to a brush
(Если приложение обрабатывает это сообщение, возвращаемое значение является хендлом кисти)
В кибор ничего не возвращается. |
|
|
007wan |
Отправлено: 27 Апреля, 2019 - 13:03:11
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Понял.
Кстати, насчет калькулятор программиста, где вычисляем из буквы #define, я только сейчас понял, что
Цвет, например, (или любой) IndianRe вычисляем HEX отдельной каждой #CD|5C|5C (Получаем 205, 92, 92 это RGB), а одной цифрой для кибор я думаю, что просто вычислить целую без разделения. Офигеть вроде как просто. |
|
|
Zireael |
Отправлено: 28 Апреля, 2019 - 11:05:35
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: так хендл меняется
Да он всегда разный. Это ничего не меняет.
При создании окна возвращается его хендл, т. е.
Цитата: function getmessage(0, WM_CREATE)
{
check1=CreateWindow(0, "BUTTON", "Галка1", ...); // создать галку1
check2=CreateWindow(0, "BUTTON", "Галка2", ...); // создать галку2
}
check1, check2 - это будут хендлы созданных галок.
Во время обработки события (нажатие галки):
CODE:int last_check=check1; // запомнили какая галка была нажата последней
Потом сравнивайте:
CODE:if(last_check==check1){} //последней нажата первая галка
if(last_check==check2){} // последней нажата вторая галка |
|
|
007wan |
Отправлено: 28 Апреля, 2019 - 12:29:07
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael , Блин я думал примерно так же. Только когда выберем галочку одну переменную задать ей значение соотвественно для галочек 0-выбрана первая,1-вторая,2-третья, только нету ли другого способа как этот или что выше?
(Добавление)
Просто я хочу, что бы это функционально выглядело. Как-то так:
CODE:
GetLastButton(...);
(Добавление)
Ладно. Как лучше через for сделать, что бы
Цитата: CODE:Status_Combobox1 = SendMessage(Object_Combobox1, CB_GETCURSEL, 0, 0);
Status_Checkbox1 = SendMessage(Object_Checkbox1, BM_GETSTATE, 0, 0);
Status_Checkbox2 = SendMessage(Object_Checkbox2, BM_GETSTATE, 0, 0);
Status_Checkbox3 = SendMessage(Object_Checkbox3, BM_GETSTATE, 0, 0);
Status_Checkbox4 = SendMessage(Object_Checkbox4, BM_GETSTATE, 0, 0);
Status_Checkbox5 = SendMessage(Object_Checkbox5, BM_GETSTATE, 0, 0);
Status_Checkbox6 = SendMessage(Object_Checkbox6, BM_GETSTATE, 0, 0);
Status_Checkbox7 = SendMessage(Object_Checkbox7, BM_GETSTATE, 0, 0);
Status_Checkbox8 = SendMessage(Object_Checkbox8, BM_GETSTATE, 0, 0);
Проверял если они равны 9, то поставить в статусе галочки(галочек) "1", а если 8, то "0"
(Добавление)
Так?CODE:for(int i=1; i<8; i++)
{
if (Status_Checkbox[i] == "9")
{
Status_Checkbox[i] = "1";
}
}
Тема закрыта! Продолжение в теме "вопрос по external и др - 2".
|
|
|
|