2010-09-10 3 views
4

У меня есть вопрос относительно функции CreateWindowEx. У меня есть 2 окна, основной и всплывающий. Я хочу, чтобы всплывающее окно скрывалось везде. В настоящее время он не отображается на панели задач, и он даже не отображается в меню alt + tab. Однако это видно на вкладке «Приложения» в диспетчере задач. Какие флаги мне нужно использовать в CreateWindowEx, чтобы скрыть всплывающее окно?Как скрыть окно из вкладки «Приложения» в диспетчере задач?

Текущий код:

hHistoryWindow = CreateWindowEx(WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE | WS_EX_LAYERED, szAppName, L"HistoryWindow", WS_EX_TOPMOST | WS_POPUP, WIDTH, TOP, width, height, NULL, NULL, hInstance, NULL); 

Я также хотел спросить, нужно ли мне выпустить растровый ресурс из «статической» окна перед использованием функции DestroyWindow()? Я установил изображение в «статический» окно таким образом:

SendMessage (hStatic, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hWhiteStone); 

достаточно ли выпустить hWhiteStone или мне нужно выпустить также ручка, возвращаемый SendMessage() (- или это делается автоматически DestroyWindow)?

Благодарим за любую информацию.

Kra

ответ

3

Сделайте это ребенком вашего главного окна. Сделайте это, изменив четвертый последний параметр на HWND вашего главного окна. Это СЛЕДУЕТ сделать окна обрабатывать ваше всплывающее окно как часть того же приложения, что и ваше главное окно.

+0

Мне нужно, чтобы это всплывающее окно отображалось за пределами «главного» окна. Если я сделаю всплывающее окно дочерним, его будет невозможно отобразить:/ – Kra

+1

нет, это произойдет, если вы укажете стиль WS_CHILD. –

+0

ahhh, хороший момент. Я всегда думал, что родительский hWnd и WS_CHILD должны быть связаны вместе. Благодаря! – Kra

Смежные вопросы