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

RusFAQ.ru: Win API


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

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

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

Выпуск № 161
от 15.11.2005, 17:48

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


Вопрос № 29270: Доброго вопрос такой: использую DialogBox , а диалоги все равно не модальные :( ...
Вопрос № 29279: Здраствуйте уважаемые эксперты. Подскажите пожайлуста. Есть функция FindFirstFile,FindNextFile которая возвращает указатель на буфер с параметрами найденного файла. Как мне определить что найденный файл является каталогом,если Windows в о...
Вопрос № 29283: Здравствуйте! У меня вопрос: Как сделать, чтобы при нажатии мышкой на шкале трекбара слайдер передвигался именно в это место, а не на определенное число делений? Я искал ответ в Win32.hlp, но ничего не нашел, может Вы поможете? Заранее с...
Вопрос № 29294: Как определить екранные(!) координаты клиентской области окна? Как разместить окно так что-б клиентская область располагалась по определенным координатам, другими словами как узнать размеры системной области окна (заголовок и т.д)?...

Вопрос № 29.270
Доброго
вопрос такой: использую DialogBox , а диалоги все равно не модальные :(

Приложение:

Отправлен: 09.11.2005, 19:56
Вопрос задала: Марина Сергеевна Пашкова (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Марина Сергеевна Пашкова!
Если указать родителем второго диалога основной, то все встанет на свои места :)

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: 8-ой класс)
Отправлен: 09.11.2005, 22:05

Отвечает: estiGi
Здравствуйте, Марина Сергеевна Пашкова!
Они на самом деле модальные. Просто вы допустили малюсенькую ошибку :)
С первым все правильно, но вот чтобы второй был модальным по отношению к первому, то нужно задать им зависимость друг от друга, в данном случае - родственную. Поставьте второму диалогу родителя - первый диалог.
DialogBox (NULL, (LPSTR) IDD_DIALOG2, hWnd, DIAL1);
вместо HINSTANCE необязательно ставить текущий хендл. Если вы вызываете ресурс из своего модуля, то можно проставить и ноль - подробности в МСДН
И еще. Из InitDialog желательно возвращать true, если не нужно специально везвращать 0. Опять же МСДН :)

Приложение:

Ответ отправил: estiGi (статус: 6-ой класс)
Отправлен: 09.11.2005, 22:24


Вопрос № 29.279
Здраствуйте уважаемые эксперты.
Подскажите пожайлуста.
Есть функция FindFirstFile,FindNextFile которая возвращает указатель на буфер с параметрами найденного файла.
Как мне определить что найденный файл является каталогом,если Windows в один бит где находится флаг что это каталог ставит и другие характеристики.
Зарание спасибо.
Мой майл: magoja@ua.fm
Отправлен: 10.11.2005, 01:05
Вопрос задал: MAgoja (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Алексей Смуриков
Здравствуйте, MAgoja!
Надо просто при сравнении типа на папку не писать '=', а всё зависит от языка разработки поставить что-то вроде логического 'и':
.if Type & DIRECTORY
---------
Speccy Rulezz!!!
Ответ отправил: Алексей Смуриков (статус: Практикант)
Отправлен: 10.11.2005, 07:14

Отвечает: Rusland
Здравствуйте, MAgoja!
Второй параметр у функций iAttributes может содержать faDirectory - это означает что найденное - папка.
---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)
Ответ отправил: Rusland (статус: Практикант)
Отправлен: 10.11.2005, 09:29

Отвечает: estiGi
Здравствуйте, MAgoja!
Ты имеешь в виду поле DWORD dwFileAttributes структуры WIN32_FIND_DATA ?
Значения записываются не _в_один_бит_, а в _одно_число_ типа DWORD. И суть как раз в том, что в каждом бите свое знчение и их надо проверять.

if (dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
// this is folder
}
if (dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) {
// folder is hidden
}
if (dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
// folder has a ro attribute
}
Ответ отправил: estiGi (статус: 6-ой класс)
Отправлен: 10.11.2005, 12:35


Вопрос № 29.283
Здравствуйте!
У меня вопрос:
Как сделать, чтобы при нажатии мышкой на шкале трекбара слайдер передвигался именно в это место, а не на определенное число делений? Я искал ответ в Win32.hlp, но ничего не нашел, может Вы поможете?
Заранее спасибо.
Отправлен: 10.11.2005, 02:33
Вопрос задал: Sanbow (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Sanbow!
Действительно, к примеру, стандартный вертикальный трекбар шлет в таком случае WM_VSCROLL с LOWORD(wParam) = SB_PAGEDOWN, т.е. предусматривается только постраничное передвижение :(
Отсюда, лично я вижу только один выход - сабклассинг, т.е. самому формировать нужное сообщение.
Специально для тебя слепил примерчик с "отдельно стоящим" скроллом, чтобы показать идею. Думаю, разберешься :)

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: 8-ой класс)
Отправлен: 10.11.2005, 14:28
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за подробный ответ, разберусь обязательно. :)


Вопрос № 29.294
Как определить екранные(!) координаты клиентской области окна?
Как разместить окно так что-б клиентская область располагалась по
определенным координатам, другими словами как узнать размеры системной области окна
(заголовок и т.д)?
Отправлен: 10.11.2005, 09:22
Вопрос задал: X3m (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Татьяна
Здравствуйте, X3m!
Получение клиентской области окна
BOOL GetClientRect( HWND hWnd,
LPRECT lpRect
);
Она фактически определяет размеры клиентской области
Получение экранных координат окна
BOOL GetWindowRect( HWND hWnd,
LPRECT lpRect
);

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

Желаю удачи

Приложение:

---------
Нет ничего невозможного!!!

Ответ отправила: Татьяна (статус: 7-ой класс)
Отправлен: 10.11.2005, 11:38
Оценка за ответ: 3

Отвечает: estiGi
Здравствуйте, X3m!
Смотри в МСДН:
GetClientRect
GetWindowRect
ScreenToClient
ClientToScreen
GetWindowPlacement
SetWindowPlacement
MoveWindow
GetWindowPos
Ответ отправил: estiGi (статус: 6-ой класс)
Отправлен: 10.11.2005, 12:40

Отвечает: Лысков Игорь Витальевич
Здравствуйте, X3m!
Кроме того, посмотри GetSystemMetrics(nIndex), для SM_CYCAPTION, SM_CYMENU
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 8-ой класс)
Отправлен: 10.11.2005, 13:05


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

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

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

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

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


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



© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

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

В избранное