Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Открыть новую тему     Написать ответ в эту тему

user_MAN09

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет Abs62, доделал вчерашний код, вопрос не по С++, тем не менее
связан с кодировками, открываю книгу формата .chm, содержание - абракадабра,
а сам текст нормальный, глаза мозолит, может выручишь, как вчера?

Всего записей: 37 | Зарегистр. 26-08-2010 | Отправлено: 19:39 27-03-2011
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
user_MAN09
Да уж, это совсем не в тему.
Возьми htm2chm, разбери им книгу и собери обратно, указав при сборке русский язык.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 20:10 27-03-2011
user_MAN09

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62, всехблаг!

Всего записей: 37 | Зарегистр. 26-08-2010 | Отправлено: 21:01 27-03-2011
user_MAN09

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго вечера!
 
Как решить такую проблему?
 
PMIB_TCPTABLE pTcpTable
DWORD dwNumEntries
 
for (int i=0; i<pTcpTable->dwNumEntries; i++)
 
warning C4018: <: несоответствие типов со знаком и без знака
 
так понимаю что проба в том, что DWORD и int не очень ладят, что делать?

Всего записей: 37 | Зарегистр. 26-08-2010 | Отправлено: 20:30 28-03-2011
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да много чего можно.
1. Использовать unsigned i вместо int i.
2. Явно привести в операторе сравнения pTcpTable->dwNumEntries к int или i к unsigned.
3. Отключить это предупреждение - #pragma warning(disable : 4018)
4. Не обращать на него внимания.
...

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 20:43 28-03-2011
HelioSS



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62

Цитата:
HelioSS  
Что имеется в виду под "Text Control"? Если обычный static control, то есть несколько вариантов. Один - задать ему стиль SS_NOTIFY и ловить сообщение STN_CLICKED в родительском окне. Другой - ловить в родительском окне WM_LBUTTONDOWN и проверять место, куда попал клик. Разбирался пару страниц назад. Ещё вариант - переопределить оконную функцию static control и ловить WM_LBUTTONDOWN там.

А можно пример кода?

Всего записей: 5789 | Зарегистр. 26-11-2007 | Отправлено: 20:50 28-03-2011
user_MAN09

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
благ Abs62, 3-й варик делал,про 1 и 4 думал,  
а второй (pTcpTable->dwNumEntries к int) лень было вспоминать как делать)))
 

Всего записей: 37 | Зарегистр. 26-08-2010 | Отправлено: 20:50 28-03-2011
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HelioSS

Цитата:
А можно пример кода?

По какому варианту? Если по первому, то всё как обычно. Ловим STN_CLICKED в обработчике сообщений родительского окна и делаем что нам нужно.

Код:
switch(message) {
...
  case WM_COMMAND:
    if(LOWORD(wParam) == IDC_MY_STATIC_CONTROL && HIWORD(wParam) == STN_CLICKED) {
      // Тут делаем, что нужно.
    }
    ...
    break;
...
}


----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 21:21 28-03-2011
user_MAN09

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет Abs62, проект MFC - тема отправка ICMP пакетов-запросов (ping)
объявлены следующие структуры:
 
typedef struct tagECHOREQUEST
{
    ICMPHDR icmpHdr;
    DWORD dwTime;
    char cData[64];
}ECHOREQUEST, *PECHOREQUEST;
 
typedef struct tagICMPHDR
{
    u_char Type;
    u_char Code;
    u_short Checksum;
    u_short ID;
    u_short Seq;
    char Data;
}ICMPHDR, *PICMPHDR;
 
static ECHOREQUEST echoReq;
echoReq.icmpHdr.Type    = ICMP_ECHOREQ;  
 
 
 
 
 
 
 
Добавлено:
ICMP_ECHOREQ: необъявленный идентификатор
подключена ws2_32.lib
старая константа? или какую то библиотеку подключить? или то и то)))

Всего записей: 37 | Зарегистр. 26-08-2010 | Отправлено: 20:09 01-04-2011
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
user_MAN09
Кто код писал, у того и надо спрашивать.
Если хочешь разобраться, что тут что, берёшь спецификацию протокола ICMP и смотришь там.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 21:25 01-04-2011
user_MAN09

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
разобрался))) код писал фленов

Всего записей: 37 | Зарегистр. 26-08-2010 | Отправлено: 19:50 02-04-2011
user_MAN09

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здорово Abs62, почти закончил книгу, )))
 
последний пример, выручай
 
BYTE bPhysAddr;
char sPhysAddr[256]
 
Как значение bPhysAddr копировать в  sPhysAddr (из byte в char)

Всего записей: 37 | Зарегистр. 26-08-2010 | Отправлено: 19:41 03-04-2011
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
user_MAN09
wsprintf(sPhysAddr, "%X", bPhysAddr). Или itoa(bPhysAddr, sPhysAddr, 16).
Если, конечно, я правильно понял, что требуется.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 19:56 03-04-2011
user_MAN09

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62, Благодарю, попробую, wsprintf с небольшими манипуляциями подходит вроде)))

Всего записей: 37 | Зарегистр. 26-08-2010 | Отправлено: 22:52 04-04-2011
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как правильнее ограничивать минимальный размер окна, с учетом того, что контролы на нем тоже меняются и также имеют свои минимальные размеры?

Всего записей: 10506 | Зарегистр. 05-02-2003 | Отправлено: 20:43 06-04-2011
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt
WM_SIZE сообщение ловить и в нем разрешать или нет. Или что то другое подразумевалось?

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:49 07-04-2011
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вообщем есть главное окно. В нем есть самые разные "контролы". Каждый "контрол" имеет какой-то минимальный размер, при котором он еще нормально отображается. Это размер надо как-то где-то задать. Нужно менять размер главного окна, так чтобы все отображаемые "контролы" не уменьшились меньше своих минимальных размеров. "Контрол" может отображаться, а может быть скрыт, в последнем случае считаем, что его нет на главном окне.
 
Сейчас в главном окне в OnGetMinMaxInfo идет расчет его минимального размера. Для контролов пришлось придумать оригинальное свойство GetMinWidth(). Это мне кажется не самым удачным. Хотелось бы обойтись более стандартными средствами.
 
Я хочу разобраться хотя-бы с шириной. Высота у "контролов" фиксированная и считается через CalcFixedLayout(TRUE, TRUE).cy

Всего записей: 10506 | Зарегистр. 05-02-2003 | Отправлено: 07:18 07-04-2011
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt

Цитата:
Сейчас в главном окне в OnGetMinMaxInfo идет расчет его минимального размера. Для контролов пришлось придумать оригинальное свойство GetMinWidth(). Это мне кажется не самым удачным. Хотелось бы обойтись более стандартными средствами.  

Почитай тут, там предлагается класс по твоей проблеме. Посмотри реализацию, может подойдет
http://www.codeguru.com/cpp/w-d/dislog/resizabledialogs/article.php/c1947


----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 07:41 07-04-2011
Aleksoid1978



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос ко всем - как можно отловить момент когда пользователь "остановился" перетаскивать окно. Т.е. когда мы перетаскиваем окно и в конце отпускаем кнопку мышки.
OnMove и OnMoving - ясно дело не подходят, т.к. они их события срабатывают все время пока мы перемещаем окно.
 
Есть мысль - параллельно следить за мышкой, и как только мышка перестала двигаться и не надата левая клавиша - считать что перемещение закончено.
 
Что скажете ???

----------
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Всего записей: 9226 | Зарегистр. 11-05-2006 | Отправлено: 07:19 08-04-2011
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksoid1978

Цитата:
Вопрос ко всем - как можно отловить момент когда пользователь "остановился" перетаскивать окно. Т.е. когда мы перетаскиваем окно и в конце отпускаем кнопку мышки.  

Ловить в своем приложении или в чужом (в смысле ловить перемещение любого окна)?

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 07:47 08-04-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru