Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
28 / 29 / 3
Регистрация: 26.07.2010
Сообщений: 297
1

Pop-Up окно не отображается

27.11.2013, 13:00. Показов 1117. Ответов 5
Метки нет (Все метки)

Здравствуйте. Подскажите, пожалуйста, почему не появляется pop-up окно. В таскбаре видно, что оно есть. Вот код:
C++
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
PCWSTR wcMainName = L"Main Window";
 
WNDCLASSEXW wcMain = {};
 
wcMain.cbSize = sizeof(WNDCLASSEXW);
wcMain.hInstance = hInstance;
wcMain.hCursor = LoadCursorW(hInstance, IDC_ARROW);
wcMain.lpfnWndProc = WindowProc;
wcMain.lpszClassName = wcMainName;
wcMain.hbrBackground = HBRUSH(COLOR_WINDOW + 1);
 
RegisterClassExW(&wcMain);
 
HWND hwnd = CreateWindowExW(
    0,
    wcMainName,
    L"Hello",
    WS_POPUP | WS_VISIBLE,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    HWND_DESKTOP,
    NULL,
    hInstance,
    NULL
    );
 
ShowWindow(hwnd, nCmdShow);
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2013, 13:00
Ответы с готовыми решениями:

Всплывающее окно не отображается
Помогите создать всплывающее окно HWND hPopupWnd = CreateWindow(szPopupClass, TEXT ("POPUP...

Не отображается второе окно
Здравствуйте уважаемые форумчане. подскажите по 1-й проблеме Вобщем создаю 2 окна ATOM...

Не отображается диалоговое окно
Здравствуйте. Я создал меню и на примере "Помощь->О программе" хотел вывести окно. Создал в...

Не полностью отображается окно диалога
В общем все в теме..... LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam,...

5
266 / 188 / 33
Регистрация: 15.01.2011
Сообщений: 681
27.11.2013, 16:01 2
1 что возвращает RegisterClassExW() и CreateWindowExW(), реализована ли обработка сообщений для окна?
1
28 / 29 / 3
Регистрация: 26.07.2010
Сообщений: 297
27.11.2013, 16:36  [ТС] 3
ssXXss, RegisterClassExW вернул 49844, а CreateWindowExW 0x002803ac
обработка сообщений:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    switch (uMsg) {
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
        case WM_PAINT:
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hwnd, &ps);
 
            FillRect(hdc, &(ps.rcPaint), (HBRUSH)(COLOR_WINDOW + 1));
 
            EndPaint(hwnd, &ps);
            return 0;
    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
0
266 / 188 / 33
Регистрация: 15.01.2011
Сообщений: 681
27.11.2013, 16:54 4
попробуйте сначала создать окно без WS_POPUP , а после успешного создания задать ему этот или другой стиль через SetWindowLong() , да и вообще по играйте с флагами .
Кликните здесь для просмотра всего текста

C++
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
//...
wc.cbSize         = sizeof(WNDCLASSEX);
    wc.style          = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc    = DefWindowProcW;
    wc.cbClsExtra     = 0;
    wc.cbWndExtra     = 0;
    wc.hInstance      = hinst;
    wc.hIcon          = NULL;
    wc.hIconSm        = NULL;
    wc.hCursor        = curentCursor;
    wc.hbrBackground  = (HBRUSH)GetStockObject(SYSTEM_FONT);
    wc.lpszMenuName   = NULL;
    wc.lpszClassName  = pbuff;
 
    if (!RegisterClassEx(&wc))
    {
        // error
        return GetLastError();      
    }
        hWnd = CreateWindowExW(NULL ,                  // extended style
        pbuff,     // class
        ptitle, // title
        WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
        100,150,      // initial x,y
        600,400,  // initial width, height
        NULL,     // handle to parent
        NULL,     // handle to menu
        hinst,// instance of this application
        NULL);
    if(!hWnd)
    {
        return GetLastError();
    }
        SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) &(  WS_POPUPWINDOW ));
//...


Добавлено через 32 секунды
так я делал окно без рамки и системного меню
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30922 / 20233 / 7887
Регистрация: 22.10.2011
Сообщений: 35,120
Записей в блоге: 6
27.11.2013, 16:57 5
Лучший ответ Сообщение было отмечено volvo как решение

Решение

dev.nikor, размеры (7 и 8 параметры CreateWindowEx) попробуй задать вручную...
2
28 / 29 / 3
Регистрация: 26.07.2010
Сообщений: 297
27.11.2013, 19:48  [ТС] 6
UI, это помогло, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2013, 19:48

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Pop-under окно
Как сделать, что бы окно программы было под окнами других приложений?

Pop-up окно
делаю попап окно. При клине на "затемнении" окошко закрывается(точнее скрывается). Но так же при...

Передача значений в POP-UP окно
Здравствуйте, мне нужно сделать pop-up окно, которое выводит информацию в зависимости от того на...

Pop-up окно, после загрузки страницы
Всем привет, с js не знаком, нужно написать pop-up окно, которое будет показано новому...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.