Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 911
от 19.11.2007, 13:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 478, Экспертов: 72
В номере:Вопросов: 4, Ответов: 6


Вопрос № 109274: Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, как в BCB 6.0 в ComboBox вывести часть пунктов неактивными (обычно отображаются серым шрифтом), т.е. чтобы их нельзя было выбрать, но они присутствовали в списке. Как я понял, стандартными...
Вопрос № 109307: помогите с MFC под Visual Studio 6.0 запутался я создал Static Text, к нему через Class Wizard привязал переменную класса СString, хочу чтоб ентот Static Text был логом, как мне надо pfписывать в переменую CString чтобы при вызове UpdateData(FALSE) в...
Вопрос № 109318: Ночи доброй, товарищи эксперты. Боремся с Юникодом :( Почему в одной программе при создании главного окна HWND hWnd = CreateWindow(lpzClass, TEXT("Chipik Window"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, x, y, 300, 300, NULL, N...
Вопрос № 109364: Здравствуйте, уважаемые эксперты. Проблемка такая: В 6-м билдере создаю форму. На ней 2 кнопки Button1 и Button2 и 1 прямоугольник Shape1 из палитры компонентов. В обработчике OnKeyDown пишу if(Key==VK_LEFT) Shape1->Left=Shape1->...

Вопрос № 109.274
Здравствуйте, уважаемые эксперты!
Подскажите, пожалуйста, как в BCB 6.0 в ComboBox вывести часть пунктов неактивными (обычно отображаются серым шрифтом), т.е. чтобы их нельзя было выбрать, но они присутствовали в списке. Как я понял, стандартными средствами этого сделать нельзя (так и не нашел нужного свойства у ComboBox). Поиск в Интернете также ничего не дал.
Заранее спасибо всем ответившим!
Отправлен: 13.11.2007, 19:54
Вопрос задал: NAP (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Lemeshev Konstantin
Здравствуйте, NAP!
Возможно это и не то решение, которое вы ищите, но первое что пришло в голову.

У стандартного ComboBox ставим значение свойства Style в csOwnerDrawVariable
Кроме этого определяем обработчик события OnDrawItem
В котором указываем код из приложения (он отображает элемент с номером 3 (четвертый по счету) на красном фоне)

За невозможность выбора отвечать придеться вам же.

Приложение:

Ответ отправил: Lemeshev Konstantin (статус: 5-ый класс)
Ответ отправлен: 14.11.2007, 11:43
Оценка за ответ: 4
Комментарий оценки:
Спасибо за участие, но это не то... Разукрашивание - это уже второстепенное, главное невозможность выбора определенных пунктов.


Вопрос № 109.307
помогите с MFC под Visual Studio 6.0 запутался я создал Static Text, к нему через Class Wizard привязал переменную класса СString, хочу чтоб ентот Static Text был логом, как мне надо pfписывать в переменую CString чтобы при вызове UpdateData(FALSE) все было на новой строке я нашел 2 пути решения и оба не помогли, но в обоих случаях в Debugе все красиво
1) m_RECEIVEDATA += " ";
2) m_RECEIVEDATA.Format(_T("COM1 "));
m_RECEIVEDATA += comport;
З.Ы. помогите оч нано
Отправлен: 14.11.2007, 00:01
Вопрос задал: Devnooby (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ross
Здравствуйте, Devnooby!

Static text не предназначен для вывода лога. Для этого нужно использовать элемент Edit Control (в свойствах установите Read Only - true, Multiline - true, Vertical scroll - true).

Код: (предполагается, что с Edit Box связаны переменные CString m_EditValue и CEdit m_EditControl)

//Add to log
void CMFCCEditDlg::OnBnClickedButton3()
{
m_EditValue += "Some information.... ";
UpdateData(FALSE);
m_EditControl.LineScroll(m_EditControl.GetLineCount());
}

---------
Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 16.11.2007, 00:45


Вопрос № 109.318
Ночи доброй, товарищи эксперты. Боремся с Юникодом :(
Почему в одной программе при создании главного окна

HWND hWnd = CreateWindow(lpzClass, TEXT("Chipik Window"),
WS_OVERLAPPEDWINDOW | WS_VISIBLE, x, y, 300, 300, NULL, NULL,
hInstance, NULL);

компилятор не находит ошибок, а при создании кнопки чуть ниже
CreateWindow("button", TEXT("Press me"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
10, 10, 80, 30, hWnd, (HMENU)10000, hInstance, NULL);
ругается что "cannot convert parameter 2 from 'const char [7]' to 'LPCWSTR'"
Отправлен: 14.11.2007, 03:25
Вопрос задал: Chip (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Титов Михаил Анатольевич
Здравствуйте, Chip!

А всё те же грабли. Вместо

CreateWindow("button", TEXT("Press me"), ...

напишите

CreateWindow(TEXT("button"), TEXT("Press me"), ...

а лучше отмените UNICODE в параметрах проекта.
Ответ отправил: Титов Михаил Анатольевич (статус: 3-ий класс)
Ответ отправлен: 14.11.2007, 06:49

Отвечает: Ilkras
Здравствуйте, Chip!
Посмотрите как определяется CreateWindow для unicode. Это макро. Тогда будет понятно, почему отнесена ко второму параметру а не к первому.
Ответ отправил: Ilkras (статус: Студент)
Ответ отправлен: 14.11.2007, 09:12

Отвечает: Aristos
Здравствуйте, Chip!

Странно, что компилятор ругается на 2ю переменную. Но тут проблема в первой - необходимо поместить строковую константу "button" в макрос TEXT().

---------
нет ничего невозможного
Ответ отправил: Aristos (статус: 8-ой класс)
Ответ отправлен: 14.11.2007, 12:14


Вопрос № 109.364
Здравствуйте, уважаемые эксперты.
Проблемка такая:
В 6-м билдере создаю форму. На ней 2 кнопки Button1 и Button2 и 1 прямоугольник Shape1 из палитры компонентов.
В обработчике OnKeyDown пишу
if(Key==VK_LEFT) Shape1->Left=Shape1->Left-1;
Компилируем.
И при нажатии кнопки на клаве ничего не происходит.
Фокус только прыгает между Button-ами.
Как все-таки задвинуть Shape1? Какой функцией можно убрать фокус с кнопок, а не просто передавать его с одного компонента на другой?
Отправлен: 14.11.2007, 12:05
Вопрос задал: Ben Jamin (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лучников Ю.В.
Здравствуйте, Ben Jamin!

Все верно. Дело в том, что нужное вам сообщение WM_KEYDOWN уходит активному контролу - в данном случае активной кнопке. Она его обрабатывает по своему усмотрению и далее блокирует.

Вам нужно ловить это сообщение ДО того, как оно попадет в окно.

Для этих целей можно воспользоваться компонентом TApplicationsEvent.

Напишите обработчик события OnMessage данного компонента так, как в приложении, и все у вас получится;))

Приложение:

Ответ отправил: Лучников Ю.В. (статус: 1-ый класс)
Ответ отправлен: 15.11.2007, 01:46
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.1 от 14.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное