Мертвый немодальный диалогБокс
От: Henry Twilight Россия  
Дата: 12.08.05 11:11
Оценка:
Создаю приложение на основе немодального диалогового окна. Программа не отвечает на события мыши системного и оконного меню. Хотя менюшные шоткаты работают. В чем может быть проблема? Что можно почитать по этому поводу?
Re: Мертвый немодальный диалогБокс
От: sjman Россия  
Дата: 12.08.05 12:11
Оценка:
Здравствуйте, Henry Twilight, Вы писали:

HT>Создаю приложение на основе немодального диалогового окна. Программа не отвечает на события мыши системного и оконного меню. Хотя менюшные шоткаты работают. В чем может быть проблема? Что можно почитать по этому поводу?


Чем пользуетесь? Visual'ом?
Re[2]: Мертвый немодальный диалогБокс
От: Henry Twilight Россия  
Дата: 12.08.05 12:20
Оценка:
Здравствуйте, sjman, Вы писали:

S>Здравствуйте, Henry Twilight, Вы писали:


HT>>Создаю приложение на основе немодального диалогового окна. Программа не отвечает на события мыши системного и оконного меню. Хотя менюшные шоткаты работают. В чем может быть проблема? Что можно почитать по этому поводу?


S>Чем пользуетесь? Visual'ом?

Да. Visual C++ 7.1
Re[3]: Мертвый немодальный диалогБокс
От: anvaka Украина Yasiv
Дата: 12.08.05 12:24
Оценка:
Здравствуйте, Henry Twilight.

Может, код в студию?
Хоть что-нибудь
Re[4]: Мертвый немодальный диалогБокс
От: Henry Twilight Россия  
Дата: 12.08.05 12:34
Оценка:
Здравствуйте, anvaka, Вы писали:

A>Здравствуйте, Henry Twilight.


A>Может, код в студию?

A>Хоть что-нибудь
/*
      Создание основного диалога
*/
    LONG dialUnits = 0;

    dialUnits = GetDialogBaseUnits();

    tpl.style = WS_CAPTION | WS_SYSMENU | WS_BORDER | WS_MINIMIZEBOX;
    tpl.x = MulDiv( 300, 4, LOWORD(dialUnits) );
    tpl.y = MulDiv( 200, 8, HIWORD(dialUnits) );
    tpl.cx = MulDiv( 500, 4, LOWORD(dialUnits) );
    tpl.cy = MulDiv( 500, 8, HIWORD(dialUnits) );
    hWnd = CreateDialogIndirect(hInst, &tpl, 0, (DLGPROC)WndProc);
/*
      Обработка сообщений
*/
      while (GetMessage(&msg, NULL, 0, 0)) 
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
        {
            IsDialogMessage(hWind, &msg);
        }
      }
/*
      Инициализация диалога
*/
case WM_INITDIALOG:
        {
        HMENU menu;
        menu = LoadMenu(hInst, MAKEINTRESOURCE(IDC_CHAT));
        SetMenu(hWnd, menu);
        }
        SetWindowText(hWnd, "Client");

            [skipped...]

        hBut = CreateWindow("button", "&Send", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_GROUP
            | BS_PUSHBUTTON | BS_FLAT,
            0, 0, 0, 0,
            hWnd, (HMENU)IDC_BUT, hInst, NULL);

        EnableWindow(hBut, false);

            [skipped...]

        return true;
Re[5]: Мертвый немодальный диалогБокс
От: McQwerty Россия  
Дата: 12.08.05 15:17
Оценка:
Здравствуйте, Henry Twilight, Вы писали:

HT>Здравствуйте, anvaka, Вы писали:


A>>Здравствуйте, Henry Twilight.


A>>Может, код в студию?

A>>Хоть что-нибудь
HT>
HT>/*
HT>      Обработка сообщений
HT>*/
HT>      while (GetMessage(&msg, NULL, 0, 0)) 
HT>    {
HT>        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
HT>        {
HT>            IsDialogMessage(hWind, &msg);
HT>        }
HT>      }


Я делаю так:
        while (GetMessage (&msg, NULL, 0, 0))
        {
            if (!TranslateAccelerator (hDlg, hAccel, &msg))
                if (!IsDialogMessage (hDlg, &msg))
                {
                    TranslateMessage (&msg);
                    DispatchMessage (&msg);
                }
        }
Re[6]: Мертвый немодальный диалогБокс
От: Henry Twilight Россия  
Дата: 15.08.05 07:32
Оценка:
Здравствуйте, McQwerty, Вы писали:

MQ>Здравствуйте, Henry Twilight, Вы писали:


HT>>Здравствуйте, anvaka, Вы писали:


A>>>Здравствуйте, Henry Twilight.


A>>>Может, код в студию?

A>>>Хоть что-нибудь

MQ>Я делаю так:

MQ>
MQ>        while (GetMessage (&msg, NULL, 0, 0))
MQ>        {
MQ>            if (!TranslateAccelerator (hDlg, hAccel, &msg))
MQ>                if (!IsDialogMessage (hDlg, &msg))
MQ>                {
MQ>                    TranslateMessage (&msg);
MQ>                    DispatchMessage (&msg);
MQ>                }
MQ>        }
MQ>

Я тоже так делал. Не полегчало
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.