Форум программистов, компьютерный форум, киберфорум
Наши страницы

Убегание окна от курсора - 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
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
24.03.2010, 17:57  [ТС]
Народ, помогите доделать прогу)))
Нужно чтобы с помощью двойного щелчка убегание прекращалось...

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
59
60
61
62
63
64
65
66
67
68
#include <windows.h>
#include <cstdlib>
#include <ctime>
 
 
LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);
 
int WINAPI WinMain(HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLine,
 
 int nCmdShow)
{
srand(time(0));
 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,z;
        x=LOWORD(lparam);
        y=HIWORD(lparam);
        z=0;
        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, rand() % GetSystemMetrics(SM_CXSCREEN) - 200, rand() % GetSystemMetrics(SM_CYSCREEN) - 180, 200, 180, TRUE);
        break;
 
case WM_LBUTTONDBLCLK:
 
    break;
 default:
 return DefWindowProc(hwnd, Message, wparam, lparam);
 }
 return 0;
}
Добавлено через 38 минут
то есть у меня

C++
1
2
if (z==0)
MoveWindow(hwnd, rand() % GetSystemMetrics(SM_CXSCREEN) - 200, rand() % GetSystemMetrics(SM_CYSCREEN) - 180, 200, 180, TRUE);
но

C++
1
2
3
case WM_LBUTTONDBLCLK:
    z=1;
break;
не передает значения, чтобы цикл завершился

Добавлено через 11 минут
программа теперь рабоатает, сам разобрался)
вся проблема в том, что я неправильно писал WM_LBUTTONDBLCLK (это двойной клик по клиенской области), а надо WM_NCLBUTTONDBLCLK (это по неклиентской, по заголовку)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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);
         if (UserDoneDoubleClick == false)
        MoveWindow(hwnd, rand() % GetSystemMetrics(SM_CXSCREEN) - 200, rand() % GetSystemMetrics(SM_CYSCREEN) - 180, 200, 180, TRUE);
        break;
 
case WM_NCLBUTTONDBLCLK:
UserDoneDoubleClick = true;
break;
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru