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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 234
от 05.11.2005, 14:54

Администратор:Калашников О.А.
В рассылке:Подписчиков: 228, Экспертов: 33
В номере:Вопросов: 5, Ответов: 9


Вопрос № 28586: Здравствуй уважаемые эксперты! Пытаюсь начать писать на visual c++ 7.0. Но после delphi дело идет туго. Очень прошу вас выслать мне на почту простенький итсходник в котом по нажатию кнопки меняется текст в statictext / тоесть на фор...
Вопрос № 28588: Здравствуйте уважаемые эксперты. Недавно столкнулся с еще одной проблемой при работе с сопроцессором. Есть массив целочисельных значений, необходимо найти его минимальное значение с помощью вставки на асме. "Решение" в моем исполнении п...
Вопрос № 28595: Разбераюсь ВСВ, создал проект-заготовку MDI Application. При создании каждого нового окна создается ...
Вопрос № 28608: Уважаемые експерты! Как скопировать файл, отображая процесс копирования при помощи прогресс бара. Если можно, дайте пример кода а не просто то чем это реализуется. Доку на msdn смотрел - примеров не нашел, а без примера не понятно. Прога на MFC. Испо...
Вопрос № 28622: Пожалуйста помогите с TreeView!!!! Какое значение присвоить индексу в компоненте TreeView, чтобы он реагировал по клику именно на выбранный узел? ...

Вопрос № 28.586
Здравствуй уважаемые эксперты!

Пытаюсь начать писать на visual c++ 7.0. Но после delphi дело идет туго. Очень прошу вас выслать мне
на почту простенький итсходник в котом по нажатию кнопки меняется текст в statictext /
тоесть на форме лежит кнопка и statictext и по нажатию кнопку текст заменяется на какой нибудь другой.
в delphi достаточно было добавит в обработчик кнопки строку

label.caption:='new text';
а как это сделать в visual 7?
заранее спасибо.
Отправлен: 31.10.2005, 03:36
Вопрос задал: Ивченков Владислав Владимирович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Jadd
Здравствуйте, Ивченков Владислав Владимирович!
Все просто, не боись. Создаешь Dialog Based приложение. Идешь в редактор ресурсов. Кидаешь на форму static text. А дальше все зависит от тебя. Хочешь немного меньше кода (где-то на одну строку), тогда жмешь правой клавишей на statictext и выбираешь Properties. Переименовываешь id на какой-нибудь свой(например IDC_STATIC1). Дальше жмешь правой кнопкой мыши и выбираешь Add Variable. Присваиваешь имя переменной. А адальше два раза кликешь на кнопке и тебе будет предложено добавить обработчик нажатия. Добавляешь и переходишь в редактор кода. В нем пишешь m_static.SetWindowText("Hello World!");

Другой способ не звязан с множеством тыканий мыши. Он исходит из того, что все компоненты - окна и происходят от одного предка CWnd. Значит можно получить указатель на любой из них. Например, вот так:

CWnd *pWnd = GetDlgItem(IDC_STATIC1); //IDC_STATIC1 - наш статик из первого примера
pWnd->SetWindowText("Hello World!");

Как видишь, ничего сложного. Дерзай в изучении.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 31.10.2005, 09:07

Отвечает: azat
Здравствуйте, Ивченков Владислав Владимирович!

Сделать замену текста можно так:
SetWindowText(hStatic, "new text");
Ответ отправил: azat (статус: 5-ый класс)
Отправлен: 31.10.2005, 10:51

Отвечает: estiGi
Здравствуйте, Ивченков Владислав Владимирович!
если нет связанной переменной получаем контрол по его идентификатору:
void CMyDialog::OnButtonClick () {
CWnd * wnd = GetDlgItem (IDC_STATIC1);
wnd->SetWindowText ("New Text");
}

если связать с контролом переменную
Связываем контрольную переменную, CStatic m_static
void CMyDialog::OnButtonClick () {
m_static->SetWindowText ("New Text");
}
Связываем переменную по значению, CString m_static
void CMyDialog::OnButtonClick () {
m_static = "New Text";
UpdateData (false);
}

главное условие - у статика должен быть идентификатор не IDC_STATIC, потому он равняется -1, т.е. ему надо его изменить
Ответ отправил: estiGi (статус: 4-ый класс)
Отправлен: 31.10.2005, 22:21


Вопрос № 28.588
Здравствуйте уважаемые эксперты.
Недавно столкнулся с еще одной проблемой при работе с сопроцессором. Есть массив целочисельных значений, необходимо найти его минимальное значение с помощью вставки на асме. "Решение" в моем исполнении приведено ниже.

Вроде все должно работать, но переменная min инициализируется лишь дважды. А именно:
1 - ну тут все ясно
2 - происходит инициализация значением NaN, в самом конце цикла.
Подскажите как тут быть.
Заранее всем благодарен.

Приложение:

Отправлен: 31.10.2005, 04:31
Вопрос задал: Юра (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Raptor1
Здравствуйте, Юра!
Так вроде работает, основные ошибки - уыш надо увеличивать на размер float - в данном случае на 4 байта, даные надо не только ложить в стек но и доставать во избежание переполнения
const DWORD N=10;
float mas[N], min,temp;
DWORD i;
for (i=0; i<N; i++)
mas[i]=rand()%100*15-i*0.5;
__asm
{
finit
lea esi, mas
mov ecx, N
dec ecx
fld [esi] //(1)
fst min
add esi,4
}
pMin:
__asm
{
fld [esi]
add esi,4
fcom min
fstsw ax
sahf
ja A1
fst min
}
A1: __asm
{
fstp ST(2)
loop pMin
};
Ответ отправил: Raptor1 (статус: 9-ый класс)
Отправлен: 02.11.2005, 23:40


Вопрос № 28.595
Разбераюсь ВСВ, создал проект-заготовку MDI Application. При создании каждого нового окна создается

Приложение:

Отправлен: 31.10.2005, 07:43
Вопрос задал: Mi1982 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, Mi1982!
Для того, чтобы делать SaveItem, нужно определить объект или предмет сохранения. Если это - содержимое Memo в дочернем окне, тогда твоя процедура будет, как в приложении, при условии, что путь к файлу и указатель но дочернее окно, ты все таки сохранишь где-то в переменных-членах класса.

Приложение:

---------
Если в сердце дверь закрыта, нужно в печень постучаться

Ответ отправил: Jadd (статус: Практикант)
Отправлен: 31.10.2005, 09:13


Вопрос № 28.608
Уважаемые експерты! Как скопировать файл, отображая процесс копирования при помощи прогресс бара. Если можно, дайте пример кода а не просто то чем это реализуется. Доку на msdn смотрел - примеров не нашел, а без примера не понятно. Прога на MFC. Использую диалог, выбираешь файл, потом куда копировать, копируется (кстати в это время интерфейс не отвечает) и вот хотелось бы отображать процесс на прогресс баре на этой же форме. Спасибо.
Отправлен: 31.10.2005, 10:49
Вопрос задал: Romanus (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: estiGi
Здравствуйте, Romanus!
Интерфес не отвечает, потому что надо копировать в отдельном потоке.
Смотри в приложении
С мелочами думаю разберешься сам. Смори подробней функцию CopyFileEx в МСДН

Приложение:

Ответ отправил: estiGi (статус: 4-ый класс)
Отправлен: 31.10.2005, 22:33

Отвечает: Raptor1
Здравствуйте, Romanus!
Для WINNT/2000 это делается с помощью CopyFileEx. Если ты хочешь это сделать сам то надо сделать два отображаемых в память файла (CreateFileMapping), один исходный второй для копирования и копировать кусками некоторого размера (MapViewOfFile) с отображением процесса вручную в нужном тебе окне.
Ответ отправил: Raptor1 (статус: 9-ый класс)
Отправлен: 02.11.2005, 23:40


Вопрос № 28.622
Пожалуйста помогите с TreeView!!!! Какое значение присвоить индексу в компоненте TreeView, чтобы он реагировал по клику именно на выбранный узел?

Приложение:

Отправлен: 31.10.2005, 13:47
Вопрос задала: Ariy (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Tsechoev Bagaudin
Здравствуйте, Ariy!
Если добавлять дочерний элемент для выделенного узла, то
TreeView2->Items->AddChildFirst(TreeView2->Selected,Edit2->Text);
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 31.10.2005, 22:45

Отвечает: Татьяна
Здравствуйте, Ariy!
для определения индекса текущего узла
TreeView2->Selected->Index;
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 6-ой класс)
Отправлен: 01.11.2005, 17:27


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное