Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > создание нескольких несвязанных окон


Автор: ZC1989 25.3.2011, 19:32
поискал в нете не нашёл...на форуме с поиском проблемы...не хочет ничего искать( так что если вопрос звучал уже, не ругайтесь)

суть такая, создано главное окно

Код

    // Create.
    bool    init(HINSTANCE hInst) {
        wndclass.style = 0;
        wndclass.lpfnWndProc = (WNDPROC)proc_wnd_global;
        wndclass.cbClsExtra = 0;
        wndclass.cbWndExtra = 0;
        wndclass.hInstance = hInst;
        wndclass.hIcon = NULL;
        wndclass.hCursor = NULL;
        wndclass.hbrBackground = NULL;
        wndclass.lpszMenuName = NULL;
        wndclass.lpszClassName = "AVC_CLASS";

            // Регистрация класса.
        if( !RegisterClassEx(&wndclass) )
            if( !RegisterClass((LPWNDCLASS)&wndclass.style) )
                return false;

        hWnd = CreateWindow("AVC_CLASS", "", 0, 0, 0, 0, 0, HWND_DESKTOP, NULL, hInst, NULL);

            // Создание иконки с системном трее.
        SysTrayIcon.init(hWnd, hInst, MAKEINTRESOURCE(IDI_ICON_DISCONNECT), "AlmaVision Client.");
        SysTrayIcon.add();

            // Создание меню для системного трея.
        SysTrayMenu.init(GlobalHINSTANCE);
        SysTrayMenu.button_action(ID_STM_CONNECT, MF_ENABLED);
        SysTrayMenu.button_action(ID_STM_DISCONNECT, MF_GRAYED);

        return true;
    }

        // Proc.
    int        proc() {
        while( GetMessage(&msg, NULL, 0, 0) )  {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        return (int)msg.wParam;
    }


как видно оно просто висит в трее, и нужно из этого окна создать несколько окон, на подобии всплывающих как у Касперского или Нода... тоесть над часиками повляется табличка на какое то время... может одна, а может и несколько, не получается нормально создать через попап, больше одного окна, второе не создаётся пока не закроется первое... пробовал через Чилд создавать их где родительский hwnd == 0 или  GetDesktopWindow(). всё равно...на экране я их не вижу, зато типа как создаются все... 

окна из ресурсов

создаю так
Код

case WM_CREATE:
            DialogBox(GlobalHINSTANCE, (LPCTSTR)IDD_MODAL, hWnd, proc_dlg_modal);
            MessageBox(0, "сообщение после создания окна!!!", "= )", 0);


в ресурсах такое
Код

IDD_MODAL DIALOGEX 0, 0, 210, 34
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    PUSHBUTTON      "X",IDC_MODAL_CLOSE,194,2,14,12
    LTEXT           "Текст сообщения",IDC_STATIC,5,11,60,8
END

Автор: borisbn 26.3.2011, 14:13
Цитата(ZC1989 @  25.3.2011,  19:32 Найти цитируемый пост)
на форуме с поиском проблемы...

мягко сказано. ищи http://www.google.ru/search?hl=ru&source=hp&q=site%3Ahttp%3A%2F%2Fforum.vingrad.ru+systray+tooltip&aq=f&aqi=&aql=&oq=

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)