Здравствуйте, эксперты! Спасибо Yuri Gordienko за кусок кода (вопрос №942) - классно работает (ну и другим тоже спасибо). Появился у меня новый вопрос: как можно мышью перемещать окно с такими свойствами (пишу под Win32 Appllication): WS_EX_OVERLAPPEDWINDOW, WS_EX_TOOLWINDOW, WS_EX_TOPMOST, WS_POPUP, WS_SYSMENU (не за строку заголовка. а за рабочую область). Видел такое в Heroes 4, захотел попробовать. Пробовал примерно следующее: //кусок не полный ClientToScreen (hwnd, &pt); MoveWindow(hwnd, pt.x, pt.y, x, y, 1); А не работает :(( Подскажите, как вообще работают ClientToScreen и ScreenToClient
Добрый день, Ренат! А для этого необязательно использовать MoveWindow. Достаточно просто обрабатывать WM_NCHITTEST: class CMyWnd: public CWnd { public: afx_msg UINT OnNcHitTest( CPoint point ) { return HTCAPTION; } DECLARE_MESSAGE_MAP() }; BEGIN_MESSAGE_MAP( CMyWnd, CWnd ) ON_WM_NCHITTEST() END_MESSAGE_MAP() С уважением, Avl2k. Ответ отправлен: 18.07.2003, 11:04 Отправитель: Avl2k
Вопрос № 944
Здрямствуйте! Большое спасибо Юрию Гордиенко как единственному откликнувшемуся на мой прошлый вопрос! Теперь у меня новая беда :( функция strtok("One, two, and three."," "); равно как и strncpy(rec.sender,":koptevo.dal.net AUTH 11 22 33",10); вызывает ошибку access violation... Это-то почему? v_V
Здравствуйте, Nekuro Mancer! Смотри прототип функции strtok: char* strtok (char *newstring, const char *delimiters), а ты пихаешь const char*. По strncpy ничего сказать нельзя, - напиши как у тебя проинициализирован rec.sender (по ошибке мне кажется, что он у тебя вообще никак не проинициализирован) Успехов
Ответ отправлен: 21.07.2003, 10:09 Отправитель: Yuri Gordienko Отвечает Avl2k
Добрый день, Nekuro Mancer! 1. Функция strtok записывает NULL на место каждого найденного разделителя. Так как у Вас исходная строка представлена константой, при попытке записи в память только для чтения и происходит Access Violaion. 2. Хорошо бы еще увидеть объявление rec.sender... А так могу предположить, что либо sender указывает на область размером меньше 10 символов, либо проинициализирован константной строкой (неважно какой длины). С уважением, Avl2k. Ответ отправлен: 21.07.2003, 10:40 Отправитель: Avl2k
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.