Re[3]: Не работает переключение по TAB между контролами в MD
От: needDrivers  
Дата: 07.07.09 19:20
Оценка:
RB>Цикл наверняка MFC-вый...
Ни какого MFC — написал же WinAPI

IsDialogMessage в цикле присутствует.
В окне один контрол ListView со стилем WS_TABSTOP
    hwndListView = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, NULL,
                            WS_VISIBLE | WS_CHILD | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | LVS_NOSORTHEADER | WS_TABSTOP | LVS_OWNERDATA,
                            ...., hwnd, NULL, g_hInstance, NULL);


и диалоговое окно с несколькими контролами.
    hwndInfo = CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_INFO), hwnd, (DLGPROC) DialogProc_Info, (LPARAM) 0);
    SetWindowPos(hwndInfo, hwndListView, ..., SWP_SHOWWINDOW);



Цикл такой:
    while(GetMessage(&msg, NULL, 0x00, 0x00) != -1)
    {
        if(msg.message == WM_QUIT)
        {
            break;
        }

        if(!TranslateMDISysAccel(hwndMDIClient, &msg)
        && !TranslateAccelerator(g_hwnd, hAccelTable, &msg))
        {
            if(!IsWindow(msg.hwnd) || (GetClassLong(msg.hwnd, GCW_ATOM) != 32770) || !IsDialogMessage(msg.hwnd, &msg))
            {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }
        }
    }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.