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

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


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


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

Выпуск № 136
от 02.12.2002, 04:30

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 406
Отправлено ответов: 882
Активность: 217.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

PL
Статус: Начальный
Общий рейтинг: 112.34
[Подробней >>]
Switcher
Статус: Начальный
Общий рейтинг: 123.07
[Подробней >>]
Dzik
Статус: Профессиональный
Общий рейтинг: 114.52
URL: Разработка игрушек
[Подробней >>]
 
Jadd
Статус: Профессиональный
Общий рейтинг: 141.54
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.66
URL: Страничка обо мне и моих друзьях
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 395. Прива народ. Я делаю прогу и хочу чтобы в ней отображалось время тоесть с 1 до .... я сделал так соз... (ответов: 2)
Вопрос № 396. Здравствуйте ув. эксперты! Как сделать чтобы при наведении, например, на кнопку курсор мыши становил... (ответов: 3)
Вопрос № 397. ПРиветсствую Вас Эксперты. Не найдется ли в ваших кладях знаний ответы на следующие вопросы: 1. Как ... (ответов: 1)
Вопрос № 398. Здравствуйте, эксперты. Спасибо всем, кто откликнулся на мой вопрос №394! Прграммка теперь работает ... (ответов: 1)

Вопросов: 4, ответов: 7


 Вопрос № 395

Прива народ.
Я делаю прогу и хочу чтобы в ней отображалось время тоесть с 1 до .... я сделал так создаю
поток который делает следущее
void WINAPI times1()
{
HDC hdc = GetDC(hWnd);
HFONT hFont=CreateFont(25,0, 0, 0,
FW_BOLD, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, VARIABLE_PITCH | FF_DONTCARE, "Arial");
HGDIOBJ hOld=SelectObject(hdc,hFont);
SetBkMode(hdc,OPAQUE);
SetBkColor(hdc,RGB(0,0,0));
SetTextColor(hdc,RGB(0,255,0));
int p=0;
int g=0;
clock_t end;
char time[MAX_PATH];
for(;;)
{
end=clock();
g = end/CLOCKS_PER_SEC;
wsprintf(time,"I?ioaaoaa a?aiy: %d ",g);
TextOut(hdc,X-230,0,time,_tcslen(time));
ZeroMemory(time,MAX_PATH);
Sleep(7);
}
}
При нажатии на кнопку этот поток начинает работать вот как это выглядит у меня
case WM_COMMAND:
if(wParam==IDC_CONNECT)
{
GetWindowText(hwndCombo1,name,MAX_PATH);
if(!strcmp(name,""))
{
MessageBox(hWnd,"Au ia aaaee naie eieoeaeeu.","Aaaaeoa naia Eiy e Oaieee?",MB_OK|MB_ICONSTOP);
::SendMessage(hwndCombo1,WM_LBUTTONDOWN,0,0);
::SendMessage(hwndCombo1,WM_LBUTTONUP,0,0);
return 0;
}
DWORD IDThread3; //Вот от сюда я запускаю поток.
HANDLE hThread3;
hThread3 = CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE) times1, //Запускаю функцию times1
NULL,
0,
&IDThread3);
}
return 0;
break;
Так вот Дело в том что вот передо мной появилось окно требует ввести мои параметры и
нажать на кнопку но как токо я нажимаю на конопку то вижу что время идет не с нуля а с числа
там 10-12 тоесть как токо я нажал на кнопку время начинается с того числа на которое
я задержался вводя параметры.
Тоесть моя прога както сама уже запускает этот поток хотя я еще не нажимал кнопку
по сути такого быть не лолжно но это факт.



Вопрос отправлен: 28.11.2002, 10:46
Отправитель: Buggy

[Следующий вопрос >>] [Список вопросов]

Отвечает PL

Доброе время суток, Buggy!
Не знаю зачем так сложно реализовывать таймер (мож надо так), я бы посоветовал тебе использовать функцию GetTickCount();
Запоминай ее значение в отдельную переменную (begintime), а потом разность
(float)GetTickCount() - (float)begintime;
даст тебе требуемую величину!


Ответ отправлен: 28.11.2002, 12:39
Отправитель: PL


Отвечает Switcher

Добрый день, Buggy!
Во всем виновата функция clock().
Она используется для счета процессорного времени и начинает работать сразу при запуске программы.



Ответ отправлен: 28.11.2002, 17:00
Отправитель: Switcher


 Вопрос № 396

Здравствуйте ув. эксперты!
Как сделать чтобы при наведении, например, на кнопку курсор мыши становился другим (напр., IDC_WAIT), SetCursor смотрел, но ничего непонял?


Приложение:


Вопрос отправлен: 28.11.2002, 19:06
Отправитель: Artem

[Следующий вопрос >>] [Список вопросов]

Отвечает Dzik

Доброе время суток, Artem!
SetCursor(LoadCursor(NULL,IDC_WAIT))


Ответ отправлен: 28.11.2002, 19:33
Отправитель: Dzik


Отвечает Switcher

Здравствуйте, Artem!
Все очень просто:
Объявляем в начале где-нибудь
HCURSOR cur;
Потом в WM_CREATE или WM_INITDIALOG смотря что используешь
cur=LoadCursor(NULL,MAKEINTRESOURCE(IDC_WAIT));
берем координаты кнопки
GetWindowRect(GetDlgItem(hDlg,IDC_BUT),&rc)
Потом используем WM_MOUSEMOVE:
берем координаты курсора
GetCursorPos(&pt);
и проверяем попадает ли курсор на кнопку
если попадает то устанавливаем курсор
if (pt.x>rc.left)
{
SetClassLong(GetDlgItem(hDlg,IDC_BUT),
GCL_HCURSOR,(LONG) cur);
}




Ответ отправлен: 29.11.2002, 00:04
Отправитель: Switcher


Отвечает Jadd

Добрый день, Artem!
Пиши к примеру так:
myButton.SetCursor( ::LoadCursor(NULL, IDC_APPSTARTING) );
Это из MSDN. Купи и читай, там много инфы или иди на сайт.

Ответ отправлен: 29.11.2002, 03:13
Отправитель: Jadd


 Вопрос № 397

ПРиветсствую Вас Эксперты.
Не найдется ли в ваших кладях знаний ответы на следующие вопросы:
1. Как сделать так, чтобы кнопка при нажатии оставалась нажатой.
2. Можно ли использовать компонент DBEdit как обычный TEdit для введения фильтра базы данных.
Спасибо


Приложение:


Вопрос отправлен: 28.11.2002, 19:10
Отправитель: YAR

[Следующий вопрос >>] [Список вопросов]

Отвечает Jadd

Добрый день, YAR!
1)Эти фокусы может SpeedButton. Ставишь GroupIndex отличным от нуля у группы кнопок и можно сделать эффект переключения. Еще одно свойство - Down надо ставить в true или false, если работаешь с одной кнобой и хочешь сделать то, что ты спрашиваешь.
2)Да, можно. DBEdit ничем не отличается от Edit. Посмотри исходники, у них общий "родственник", только у DBEdit есть все необходимые методы и свойства для работы с БД.

Ответ отправлен: 29.11.2002, 02:13
Отправитель: Jadd


 Вопрос № 398

Здравствуйте, эксперты.
Спасибо всем, кто откликнулся на мой вопрос №394!
Прграммка теперь работает замечательно.
Но осталась еще одна проблема, надо бы подписаться и поставить ссылку на свой сайт, а как это сделать, незнаю.
За ночь все свои умные книшки перечитал по С++, но оказалось что этой проблеме не уделяют никакого внимания :(
Подскажите, пожалуйста, как в MFC организовать ссылочку?
И еще, как узнать, сколько моя программа жрет ресурсов? Существуют ли для этого какие нибудь программы?



Вопрос отправлен: 28.11.2002, 23:17
Отправитель: Дмитрий

[Следующий вопрос >>] [Список вопросов]

Отвечает Gibbel

Здравствуйте, Дмитрий!
Для открытия своего сайта используй ShellExecute. При этом задаешь lpOperation = open и lpFile = http://... (ссылка на твой сайт).

Ответ отправлен: 29.11.2002, 10:01
Отправитель: Gibbel



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (39)
C / C++ (27)
Perl (8)
Delphi (16)
Pascal (21)
Basic / VBA (9)
Java / JavaScript (15)
PHP (9)
MySQL / MSSQL (9)
Пользователю
Windows 95/98/Me (34)
Windows NT/2000/XP (22)
"Железо" (27)
Поиск информации (15)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (17)
Юристу
Гражданское право (9)
Семейное право (3)
Трудовое право (5)
КоАП (3)

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




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное