Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 1
Регистрация: 28.02.2012
Сообщений: 20

Движение окна по периметру экрана

28.03.2012, 22:40. Показов 2411. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{ 
    hTaskBar=FindWindow("Каркасное приложение", "Периметр");
    if(X >= 0 && X < 1066){ // часть один
        X++;
        MoveWindow(hTaskBar,X,Y,300,300, TRUE);}
    else if(X == 1066 && Y >= 0 && Y < 468 && g < 468){
        Y++;
        g++;
        MoveWindow(hTaskBar,X,Y,300,300, TRUE);} // часть два
    else if(Y == 468 && X >= 0 && X <= 1066 && 4 >= 468){
        X--;
        MoveWindow(hTaskBar,X,Y,300,300, TRUE);}
    else if(X == 0 && Y >=0 && Y <= 468){
        Y--;
        MoveWindow(hTaskBar,X,Y,300,300, TRUE);}
}
окошко двигается только по верху и с права)))
а снизу и с лева не хочет((( (движение по часовой стрелке)

не могу написать проверки к части два (смотри выше код)
подскажите плиз как это реализовать)))) спасибо))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.03.2012, 22:40
Ответы с готовыми решениями:

Перемещение окна по периметру экрана
Написать прилодение , обладающее следующей функциональностью 1. После нажатия клавишы ENTER главное окно позиционируеться в левый верхний...

"Enter" - окно перемещается по периметру экрана, "Esc" - остановить перемещение. Как?
Надо написать приложение: • при нажатии клавиши &lt; Enter&gt; главное окно позиционируется в левый верхний угол экрана с размерами...

Движение окна за мышью
Нужно сделать так, чтобы, если capture == true, окно следовало за мышью. Пробовал так: static RECT rect; static bool capture = false; ...

2
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,858
29.03.2012, 00:03
Цитата Сообщение от shadowstar Посмотреть сообщение
окошко двигается только по верху и с права)))
а снизу и с лева не хочет((( (движение по часовой стрелке)
сам то как думаешь???
окно движется влево
Цитата Сообщение от shadowstar Посмотреть сообщение
if(X >= 0 && X < 1066){ // часть один
X++;
дошло до X = 1066
срабатывает эта ветка

Цитата Сообщение от shadowstar Посмотреть сообщение
else if(Y == 468 && X >= 0 && X <= 1066 && 4 >= 468){
X--;
стало
X = 1065
и при следующей итерации
опять
Цитата Сообщение от shadowstar Посмотреть сообщение
if(X >= 0 && X < 1066){ // часть один
X++;
X = 1066
меняй алгоритм
например так
пишу только для Х остальное сам дотумкаешь
C++
1
2
3
4
5
6
int dx=1;
int x=1;
if(x==0) dx=1;
if(x==1066) dx=-1;
x+=dx;
MoveWindow(hTaskBar,x,y,300,300, TRUE);
1
1 / 1 / 1
Регистрация: 28.02.2012
Сообщений: 20
29.03.2012, 00:32  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
сам то как думаешь???
окно движется влево

дошло до X = 1066
срабатывает эта ветка


стало
X = 1065
и при следующей итерации
опять

X = 1066
меняй алгоритм
например так
пишу только для Х остальное сам дотумкаешь
C++
1
2
3
4
5
6
int dx=1;
int x=1;
if(x==0) dx=1;
if(x==1066) dx=-1;
x+=dx;
MoveWindow(hTaskBar,x,y,300,300, TRUE);
спс бум думать)))

Добавлено через 9 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
сам то как думаешь???
окно движется влево

дошло до X = 1066
срабатывает эта ветка


стало
X = 1065
и при следующей итерации
опять

X = 1066
меняй алгоритм
например так
пишу только для Х остальное сам дотумкаешь
C++
1
2
3
4
5
6
int dx=1;
int x=1;
if(x==0) dx=1;
if(x==1066) dx=-1;
x+=dx;
MoveWindow(hTaskBar,x,y,300,300, TRUE);
решил проблему по другому

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{ 
    hTaskBar=FindWindow("Каркасное приложение", "Периметр");
    if(X >= 0 && X < 1066 && Y == 0){
        X+=2;
        X_2+=2;
        MoveWindow(hTaskBar,X,Y,300,300, TRUE);}
    else if(X == 1066 && Y >= 0 && Y < 468){
        Y+=2;
        Y_2+=2;
        MoveWindow(hTaskBar,X,Y,300,300, TRUE);}
    else if(Y <= 468 && X >= 0 && X <= 1066){
        X-=2;
        X_2-=2;
        MoveWindow(hTaskBar,X,Y,300,300, TRUE);}
    else if(X == -2 && Y >= 0 && Y <= 468){
        Y-=2;
        Y_2-=2;
        MoveWindow(hTaskBar,X,Y,300,300, TRUE);}
}
и все))) но спасибо за ответ))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2012, 00:32
Помогаю со студенческими работами здесь

Движение круга по периметру экрана
Нужно сделать так, чтобы круг двигался по периметру всего экрана по часовой стрелке пока не будет нажата ЛКМ.

Организовать движение строки по периметру экрана
Пользователь вводит строку произвольной длины (до 255). Организуйте движение строки по периметру экрана. Направление движения (по...

Нарисовать движение стрелки по периметру экрана
1) Используя несколько страниц графического изображения нарисовать движение стрелки по периметру экрана. 2) Не понимаю, Pascal ABC не...

Отобразить движение буквы "о" по периметру экрана со скоростью 1 знака / секунду в TASM
Отобразить движение буквы &quot;о&quot; по периметру экрана со скоростью 1 знака / секунду в TASM

Движение объекта по периметру
Здравствуйте, помогите доделать программу. Объект движется по прямоугольной границе экрана. Сделал программу, объект движется только в одну...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru