Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2010, 13:45   #11
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Да пожалуйста, только это не Делфи (нет у меня сейчас Делфи).
Хотя он ничем от вашего не отличается, почти ничем.

Вот таймер, который запихивает блокнот под моё окошко. Кстати, он его просто запихивает, фокус при этом не переводит.

Цитата:
EventTimeCallBack proc uses ebx edi esi, uTimerID:DWORD, uMessage:DWORD, dwUser:DWORD, dw1:DWORD, dw2:DWORD

LOCAL hwnd_y:DWORD

invoke FindWindow, 0, addr [NameFind]
mov [hwnd_y], eax
cmp hwnd_y, 0
je EventTimeCallBackEnd
invoke SetWindowPos, hwnd_y, newhwnd, 0, 0, 0, 0, SWP_NOSIZE+SWP_NOMOVE

EventTimeCallBackEnd:
xor eax, eax
ret
EventTimeCallBack endp
newhwnd - это handle моего окошка, созданного функцией CreateWindowExA.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 25.09.2010, 23:32   #12
jj48
 
Регистрация: 25.09.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
Да пожалуйста, только это не Делфи (нет у меня сейчас Делфи).
Хотя он ничем от вашего не отличается, почти ничем.

Вот таймер, который запихивает блокнот под моё окошко. Кстати, он его просто запихивает, фокус при этом не переводит.



newhwnd - это handle моего окошка, созданного функцией CreateWindowExA.
Большое спасибо за участие и помощь!
Всё получилось и всё работает
jj48 вне форума Ответить с цитированием
Старый 03.10.2010, 21:34   #13
randomizr
 
Аватар для randomizr
 
Регистрация: 29.09.2010
Сообщений: 4
По умолчанию Перемещение окна в z order

SendMessageхендл_окна_программы, WM_COMMAND, номер_команды_меню, 0;
Это для выполнения пункта меню.
Затем FindWindowEx для поиска окна диалога и поиска на нём TextBox и Button. И наконец SetWindowText для TextBox и SendMessage для Button.
А зомби здесь тихие…
randomizr вне форума Ответить с цитированием
Старый 07.02.2012, 13:34   #14
Sanya11
Новичок
Джуниор
 
Регистрация: 07.02.2012
Сообщений: 2
По умолчанию

Всем привет.

У меня такая же задача как у и автора, но есть один ньюанс.
Есть несколько окон (блокнотов), задача создать три окна и не активируя и не меняя положение блокнотов, разместить мои окна над соответствующим блокнотом.
Другими словами это как взять две половинки карточной колоды и вставить их друг в друга.




Вот придумал такой финт ушами.
FormMatrix[i] - это hwnd моего окна
aHwnd[y] - это hwnd блокнота

SetWindowPos(FormMatrix[i],aHwnd[y],20, 20, 500, 600,SWP_NOMOVE+SWP_NOACTIVATE);
Сначала я подсовываю свои окна под блокноты.

SetWindowPos(aHwnd[y],FormMatrix[i],20, 20, 500, 600, SWP_NOMOVE+SWP_NOACTIVATE);
а потом сразу подсовываю блокноты под мои окна

Я только начал разбираться с z-order'ом да и у меня опыт небольшой.
Пожалуйста скажите свое мнение.
Как-то надо делать по-другому?
Дело в том, что мне надо прилипить свои окна к блокнотам.
А с моим способом, если вставить этот код в таймер, то все будет мигать.
Или можно как-то отследить что блокнот был перемещен в z-order и выполнять код только в этот момент?

Последний раз редактировалось Sanya11; 07.02.2012 в 15:52.
Sanya11 вне форума Ответить с цитированием
Старый 07.02.2012, 15:50   #15
Sanya11
Новичок
Джуниор
 
Регистрация: 07.02.2012
Сообщений: 2
По умолчанию

в общем пока придумал такое
1) я делаю блокнот родителем своего окна при создании

2) показываю свое окно с параметром sw_hide. ShowWindow (FormMatrix[i], SW_HIDE);

3) делаю финт ушами
SetWindowPos(FormMatrix[i],aHwnd[y],20, 20, 500, 600,SWP_NOMOVE+SWP_NOACTIVATE);
SetWindowPos(aHwnd[y],FormMatrix[i],20, 20, 500, 600,SWP_NOMOVE+SWP_NOACTIVATE);

4) показываю ShowWindow (FormMatrix[i], SW_SHOWNOACTIVATE);

Все отлично работает.
Не надо никаких таймеров в будущем.
Что скажите про финт ушами?
С z-order'ом пока полный ноль к сожалению
Sanya11 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ORDER BY динамический Pang SQL, базы данных 2 16.05.2010 23:51
ORDER BY Sidorow2001 Microsoft Office Access 1 17.02.2010 17:19
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13
Перемещение окна мышью за Image Viteef Общие вопросы Delphi 2 03.05.2007 23:48