Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите с winapi / 9 сообщений из 9, страница 1 из 1
15.01.2006, 11:57
    #33483336
warlocklex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с winapi
Мне нужно написать на winapi прогу типа «подсчет и-нет трафика» по dial-up.Куча вопросов появилась:
1) Проверка отключен ли от сети функция InetIsOffline(0).Писал просто
Код: plaintext
1.
2.
3.
if (InetIsOffline( 0 )){
               FlashWindow(hwnd, TRUE);
	MessageBox(hWnd, "отключен от сети ", "ВНИМАНИЕ", NULL);
              return  0 ;}
НО КУДА ЭТО ВСТАВЛЯТ Я НЕ ПОНЯЛ,т.к этот кусок надо вставлять что бы он постоянно опрашивался. Толи в обработчик событий (switch (Message)) или сюда while(GetMessage(&msg,NULL,0,0))
2)Т.к я подключаюсь через модем то в MSDN говорят для модемов определения подключения используют функцию InternetDial. Ещё есть вот эта функция InternetCheckConnection() КАКОЙ лучше?
3)
Код: plaintext
1.
SYSTEMTIME st;
GetLocalTime (&st);
Получение локально времени. Как вывести время на окно ? т.к. GetLocalTime function does not return a value
4) как вывести на экран текст я знаю(DrawText(hDC,"текст", -1,&Rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);) а как выводить изменяющее время или трафик с каждой секундой? Надо обрабатывать запрос каждую секунду. А как?а где?
...
Рейтинг: 0 / 0
16.01.2006, 12:37
    #33484614
Eugene7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с winapi
warlocklexМне нужно написать на winapi прогу типа «подсчет и-нет трафика» по dial-up.Куча вопросов появилась:
1) Проверка отключен ли от сети функция InetIsOffline(0).Писал просто
Код: plaintext
1.
2.
3.
if (InetIsOffline( 0 )){
               FlashWindow(hwnd, TRUE);
	MessageBox(hWnd, "отключен от сети ", "ВНИМАНИЕ", NULL);
              return  0 ;}
НО КУДА ЭТО ВСТАВЛЯТ Я НЕ ПОНЯЛ,т.к этот кусок надо вставлять что бы он постоянно опрашивался. Толи в обработчик событий (switch (Message)) или сюда while(GetMessage(&msg,NULL,0,0))

Создай таймер функцией SetTimer(). В оконной процедуре (switch (Message)) отлавливай сообщение WM_TIMER.

warlocklex4) как вывести на экран текст я знаю(DrawText(hDC,"текст", -1,&Rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);) а как выводить изменяющее время или трафик с каждой секундой? Надо обрабатывать запрос каждую секунду. А как?а где?
Опять же можно через таймер. Приходит WM_TIMER каждую секунду(или как задашь переодичность) и на это сообщение можешь и текст выводить и все что угодно делать.
Текст еще можно выводить с помошью окна Static text. Текст туда устанавливать с помошью функции SetWindowText()
...
Рейтинг: 0 / 0
16.01.2006, 20:04
    #33485917
aka warlocklex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с winapi
пасиба!
пробую!
...
Рейтинг: 0 / 0
16.01.2006, 23:12
    #33486048
warlocklex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с winapi
HDC hDC;PAINTSTRUCT PaintStruct;RECT Rect;
Вставляю в WM_TIMER
Код: plaintext
1.
2.
3.
             hDC = BeginPaint(hwnd,&PaintStruct);
       GetClientRect(hwnd,&Rect);
       DrawText (hDC,"показать", - 1 ,&Rect,DT_LEFT);
       EndPaint(hwnd,&PaintStruct);

Так он вообще не выводит,ни как!таймер такой SetTimer(hwnd, 1, 100, NULL); Пишу до while(GetMessage(&msg,NULL,0,0))
...
Рейтинг: 0 / 0
16.01.2006, 23:15
    #33486052
warlocklex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с winapi
во мне нужно что бы после того как я ввел строку в файл курсор передвигался на начало следующе!
использую WriteFile(HANDLE,,,,NULL)
...
Рейтинг: 0 / 0
16.01.2006, 23:16
    #33486053
warlocklex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с winapi
какой конвертировать и во что, что бы вывести в файл и вывести на экран?
...
Рейтинг: 0 / 0
18.01.2006, 16:53
    #33489946
Eugene7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с winapi
warlocklexHDC hDC;PAINTSTRUCT PaintStruct;RECT Rect;
Вставляю в WM_TIMER
Код: plaintext
1.
2.
3.
             hDC = BeginPaint(hwnd,&PaintStruct);
       GetClientRect(hwnd,&Rect);
       DrawText (hDC,"показать", - 1 ,&Rect,DT_LEFT);
       EndPaint(hwnd,&PaintStruct);

Так он вообще не выводит,ни как!таймер такой SetTimer(hwnd, 1, 100, NULL); Пишу до while(GetMessage(&msg,NULL,0,0))

На WM_TIMER ставь функцию InvalidateRect((HWND)hWnd, NULL, TRUE);
В таймере - одна секунда - 1000 а не 100.
Потом делай обработку в WM_PAINT. Например получение и показ времени:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
case WM_TIMER:
{
	InvalidateRect((HWND)hWnd, NULL, TRUE);
}
break;
case WM_PAINT:
{
             PAINTSTRUCT ps;
	HDC hdc = BeginPaint(hWnd, &ps);
	RECT rt;
	GetClientRect(hWnd, &rt);
	struct tm *Time;
             time_t ltime;
	time(&ltime);
             Time = localtime(&ltime);
	unsigned char szTime[ 8 ];
	wsprintf( (char *)szTime, "%d:%d:%d ", Time->tm_hour, Time->tm_min, Time->tm_sec);
	DrawText (hdc, (const char *)szTime, sizeof(szTime), &rt, DT_LEFT);
	EndPaint(hWnd, &ps);
}
break;

У меня все работает.

По поводу конца строки - \n. Например:
"Моя строка\n"

Зачем для работы с файлами использовать winapi функции? По моему проще использовать стандартные сишные(fopen и.т.д). Можно также fstream юзать, тоже стандарт C++
...
Рейтинг: 0 / 0
18.01.2006, 16:58
    #33489957
Eugene7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с winapi
Вместо
Код: plaintext
<ime

надо

Код: plaintext
&ltime
...
Рейтинг: 0 / 0
18.01.2006, 17:01
    #33489970
Eugene7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с winapi
Глюк с форумом. Не хочет писать переменную в форум и все тут. Вообщем переменная ltime и перед ней оператор взятия адреса &
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите с winapi / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]