Форум программистов, компьютерный форум CyberForum.ru

Убегание окна от курсора - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица http://www.cyberforum.ru/cpp-beginners/thread106740.html
Для заданной матрицы размером 4х4 найти такие k, при которых k-я строка совпадает с k-м столбцом. Подкиньте идею,пожалуйста, как это сделать.
C++ Ежедневник. Курсовая Нужно написать курсовую работу на тему ежедневник. помогите с чего начать и как легче ее сделать http://www.cyberforum.ru/cpp-beginners/thread106734.html
C++ Определить средние арифметические столбцов матрицы C++
Помогите, пожалуйста, с программой Определить средние арифметические столбцов матрицы. Матрица вводится с клавиатуры
C++ Заменить в тексте все символы 'a' на 'z', 'b' на 'y', 'c' на 'x' и т.д.
Очень-очень прошу написать программу на C++ C++ Заменить в тексте все символы 'a' на 'z', 'b' на 'y', 'c' на 'x' и т.д. Текст вводится с клавиатуры
C++ от комментируйте пожалуйста программу http://www.cyberforum.ru/cpp-beginners/thread106723.html
#include <iostream> #include <cstring> #include <locale> #include <windows.h> using namespace std; // описание класса class text{ int x,y,id; char word; char mas;
C++ Задание проги на Си. Как ее делать? Задание: Пару скобок в логической формуле назовем избыточной, если после ее удаления формула останется эквивалентна исходной. Удалить все избыточные пары скобок в заданной формуле. подробнее

Показать сообщение отдельно
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
20.03.2010, 16:31     Убегание окна от курсора
Помогите написать)
такая классическая задачка в общем

пока реализовано само окно и кривое определние координат курсора

C++
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
#include <windows.h>
 
LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);
 
int WINAPI WinMain(HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLine,
 
 int nCmdShow)
{
 HWND hwnd;
 MSG msg;
 WNDCLASS w;
 memset(&w,0,sizeof(WNDCLASS));
 w.style = CS_HREDRAW | CS_VREDRAW;
 w.lpfnWndProc = WndProc;
 w.hInstance = hInstance;
 w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
 w.lpszClassName = "My Class";
 RegisterClass(&w);
 hwnd = CreateWindow("My Class", "Lab6", WS_OVERLAPPEDWINDOW,
 300, 200, 200, 180, NULL, NULL, hInstance, NULL);
 ShowWindow(hwnd,nCmdShow);
 UpdateWindow(hwnd);
 while(GetMessage(&msg,NULL,0,0))
 {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }
 return msg.wParam;
}
 
LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
 switch (Message)
 {
 case WM_DESTROY: 
 PostQuitMessage(0);
 break;
 case WM_MOUSEMOVE:
        int x,y;
        x=LOWORD(lparam);
        y=HIWORD(lparam);
        char u[10];
        _itoa_s(x,u,10,10);
        if(u[1]==0)
            u[1]=' ';
        if(u[2]==0)
            u[2]=' ';
        _itoa_s(y,u+4,6,6);
        u[3]='x';
        SetWindowText(hwnd,u);
        break;
 default:
 return DefWindowProc(hwnd, Message, wparam, lparam);
 }
 return 0;
}
Добавлено через 2 часа 19 минут
Окно от курсора убегает так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 case WM_MOUSEMOVE:
        int x,y;
        x=LOWORD(lparam);
        y=HIWORD(lparam);
        char u[10];
        _itoa_s(x,u,10,10);
        if(u[1]==0)
            u[1]=' ';
        if(u[2]==0)
            u[2]=' ';
        _itoa_s(y,u+4,6,6);
        u[3]='x';
        SetWindowText(hwnd,u);
MoveWindow(hwnd,120,100,200,180,TRUE);
        break;
Пэчаль в том, что он двигает окно лишь в заданные координаты x и y
как сделать, чтобы эти x y были случайными?)

Добавлено через 5 минут
C++
1
MoveWindow(hwnd, rand() % GetSystemMetrics(SM_CXSCREEN) - 200, rand() % GetSystemMetrics(SM_CYSCREEN) - 180, 200, 180, TRUE);
Надо было просто это добавить в case WM_MOUSEMOVE:

Теперь осталось только реализовать то, что при двойном щелчке убегание прекращалось))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru