Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нажатие мыши 
:(
    Опции темы
legion33
Дата 18.3.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.3.2007

Репутация: нет
Всего: нет



 Здравствуйте Уважаемые !!! Помогите подскажите как сделать. Суть такова: дали задачу звучит так "В центре рабочей области окна расположено окно без заголовка с вертикальной и горизонтальной полосами просмотра размером в четверть рабочей области. При нажатии разных клавиш мыши временное окно выдает разный звуковой сигнал". Два окна я создал, полосы прокрутки сделал, нужно как-то написать звуковые сигналы при нажатии мыши и если можно то привязать второе окно к первому, т.е. в области первого окна.
Код программы:

#include <windows.h>

LRESULT CALLBACK HelloWorldWndProc (HWND, UINT, UINT, LONG);
int WINAPI WinMain (HINSTANCE hInstance,
                    HINSTANCE hPrevlnstance,
                    LPSTR lpszCmdParam,
                    int nCmdShow )
{
  HWND hWnd;
  HWND hOkno;
  WNDCLASS WndClass;
  MSG Msg;
  char szClassName[] = "HelloWorld";

//-----------------------------------------------------------------
// создадим и зарегистрируем класс окна
// Заполняем структуру типа WNDCLASS
  WndClass.style = CS_HREDRAW|CS_VREDRAW;
  WndClass.lpfnWndProc = HelloWorldWndProc;
  WndClass.cbClsExtra = 0;
  WndClass.cbWndExtra = 0;
  WndClass.hInstance = hInstance;
  WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
  WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
  WndClass.lpszMenuName = NULL;
  WndClass.lpszClassName = szClassName;

//---------------------------------------------------------------
//Регистрируем создаваемый класс
  if (!RegisterClass(&WndClass))
  {MessageBox(NULL, "Невозможно зарегстрировать класс",
  "Ошибка !!!", MB_OK);
  return 0;
  }
//-----------------------------------------------------------------
// Создаем окно

  hWnd = CreateWindow(szClassName, "ПРОГ1",
                      WS_OVERLAPPEDWINDOW,
                      CW_USEDEFAULT,
                      CW_USEDEFAULT,
                      CW_USEDEFAULT,
                      CW_USEDEFAULT,
                      NULL,
                      NULL,
                      hOkno,
                      NULL);
 if (!hWnd) {MessageBox(NULL, "Невозможно создать окно",
             "Ошибка !!!", MB_OK);
             return 0;
            }
//------------------------------------------------------------
// Создаем окно  2

  hOkno = CreateWindow(szClassName,
                      "",
                      WS_CAPTION|WS_HSCROLL|WS_VSCROLL,
                      33,
                      50,
                      200,
                      200,
                      hWnd,
                      NULL,
                      hInstance,
                      NULL);
 if (!hOkno) {MessageBox(NULL, "Невозможно создать окно",
             "Ошибка !!!", MB_OK);
             return 0;
            }

//----------------------------------------------------------------

//Вывод окна
  ShowWindow(hWnd, nCmdShow);
  UpdateWindow(hWnd);

  ShowWindow(hOkno, nCmdShow);
  UpdateWindow(hOkno);

//Запуск цикла сообщений
  while (GetMessage(&Msg, NULL, 0, 0))
  {
   TranslateMessage(&Msg);
   DispatchMessage(&Msg);
  }
  return Msg.wParam;
  }

//Реализация оконой функции
LRESULT CALLBACK HelloWorldWndProc(HWND hWnd,
                    UINT Message,
                    UINT wParam,
                    LONG lParam)
  { HDC hDC;
    PAINTSTRUCT PaintStruct;
    RECT Rect;
    switch (Message)
  {
   case WM_PAINT:
              hDC = BeginPaint(hWnd, &PaintStruct);
              GetClientRect(hWnd, &Rect);
              DrawText(hDC, "Hello", -1, &Rect,
              DT_SINGLELINE|DT_CENTER|DT_VCENTER);
              EndPaint(hWnd, &PaintStruct);
              //mouse_event

   return 0;
   sound(130);
   case WM_DESTROY: PostQuitMessage(0);
   return 0;
   }
   return DefWindowProc(hWnd, Message, wParam, lParam);
   }

 
ЗАРАНЕЕ СПАСИБО.

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Unit1.cpp 4,05 Kb
PM MAIL   Вверх
belphegor
Дата 18.3.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 17.12.2006
Где: Молдова, Кишинев

Репутация: нет
Всего: нет



//Если нажали на левую кнопку мыши,
    case WM_LBUTTONDOWN:
        //то раздается звуковой сигнал.
        MessageBeep(0xFFFFFFFF); 
        break;

PM MAIL   Вверх
legion33
Дата 18.3.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.3.2007

Репутация: нет
Всего: нет



Мне нужно чтобы звук был не из колонок, а из динамика системника и только при нажатии на втором окне там где есть полосы прокрутки
PM MAIL   Вверх
ama_kid
Дата 18.3.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 5
Всего: 95



Цитата(legion33 @  18.3.2007,  13:03 Найти цитируемый пост)
и если можно то привязать второе окно к первому, т.е. в области первого окна
Для этого второе окно надо создавать со стилем WS_CHILD

Цитата(legion33 @  18.3.2007,  14:06 Найти цитируемый пост)
Мне нужно чтобы звук был не из колонок, а из динамика системника и только при нажатии на втором окне там где есть полосы прокрутки 
Используй Beep (под 95/98 виндой будет все равно работать через колонки)



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Gaudi
Дата 19.3.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 18.3.2007

Репутация: нет
Всего: нет



Под виндовс 95/98 используй прямой вывод в 61h порт
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.