0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 4
1

Переслать событие в контрол

04.04.2013, 05:37. Показов 1235. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Существует класс
C++ (Qt)
1
class CFlashWnd: public  IDispatch{}
В нем с помощью CreateWindow создается окно и в него аттачиться контрол для FlashPlayer.
Как мне переслать событие mosemove в контрол flash playera?
(Если отсылать событие в окно, до flash playera оно не добирается)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2013, 05:37
Ответы с готовыми решениями:

Событие нажатия на panel и любой контрол панели
Здраствуйте, у меня есть 1 panel, на которой размещены 2 картинки, несколько label..... Мне нужно...

Как отловить событие перехода с контрола на контрол в диалоге?
Есть диалог. На нём лежит несколько контролов(нестандартных).Как средствами самого диалога отловить...

Как сделать так чтоб контрол перенаправлял событие контролу-родителю
Всем привет ещё рас. Я в прошлый рас неправильно вопрос сформулировал. Вообщем есть такая вот...

Как сделать так чтоб контрол перенаправлял событие контролу-родителю
у меня есть flowLayoutPanel а нем лежать pixturebox-ы как заставить pixturebox не перехвачевать...

2
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,413
04.04.2013, 09:23 2
Цитата Сообщение от Zaher220 Посмотреть сообщение
оно не добирается
чудес не бывает. события обрабатывают окна. может не в то окно шлете?
0
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 4
06.04.2013, 07:18  [ТС] 3
Можно провести эксперимент
Это оконная процедура
C++ (Qt)
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
LRESULT CALLBACK CFlashWnd::HostWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;
    CFlashWnd* f=(CFlashWnd*)GetWindowLongPtr(hWnd,GWL_USERDATA);
    
    switch (message)
    {
    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
        // Разобрать выбор в меню:
        switch (wmId)
        {
        case IDM_ABOUT:
            ::DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, DlgProc);
            break;
        case IDM_EXIT:
            ::DestroyWindow(hWnd);
            break;
        default:
            return ::DefWindowProc(hWnd, message, wParam, lParam);
        }
        break;
    [COLOR="Red"]case WM_MOUSEMOVE:
        printf("Mose is moved \n");
        break;[/COLOR]
    case WM_PAINT:
        hdc = ::BeginPaint(hWnd, &ps);
        ::EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        ::PostQuitMessage(0);
        break;
    default:
        return ::DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
Попробуем выполнить без аттача контрола в окно
Mose is moved
Mose is moved
...
Mose is moved
Приаттачим контрол
C++ (Qt)
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
HRESULT CFlashWnd::AttachControl()
{
    if(isAttached)
        return S_FALSE;
 
    if(hWndHost == NULL)
        return S_FALSE;
 
    HMODULE hModule = ::LoadLibrary(L"atl");
    if(!hModule)
        return S_FALSE;
 
    LPAtlAxAttachControl pAtlAxAttachControl = (LPAtlAxAttachControl)::GetProcAddress(hModule,"AtlAxAttachControl");
    if(!pAtlAxAttachControl)
    {
        ::FreeLibrary(hModule);
        return S_FALSE;
    }
    HRESULT hr = pAtlAxAttachControl(flash,hWndHost,NULL);
    if(hr != S_OK)
        return hr;
 
    isAttached = TRUE;
    return hr;
}
Пусто. Никакой реакции на перемещение курсора.
Может я в чем то ошибаюсь или недопонимаю.
Подскажите как корректно, программно генерировать события mosemove в окне.
0
06.04.2013, 07:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2013, 07:18
Помогаю со студенческими работами здесь

Как в диалоге отловить событие помещения фокуса на какой-нибудь контрол?
Привет всем! А как, собственно говоря, в диалоге отловить событие помещения фокуса на какой-нибудь...

Как перетащить node на любой контрол к примеру groupBox и вызвать этим событие
Люди подскажите пожалуйста как перетащить node на любой контрол к примеру groupBox и вызвать этим...

Двигаю контрол мышкой по форме Access, но контрол движется медленнее мышки
сабж. код прилагаю. нид хелп Private Declare Function GetCursorPos Lib "user32.dll" (ByRef...

Как можно изменить слой, на котором находится контрол? Чтобы один контрол всегда рисовался поверх другого?
Просто я создаю контролы динамически, и при появлении они всегда ниже созданных ранее, это...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru