Сделать не активное окно
От: MaxK  
Дата: 05.02.04 16:02
Оценка:
Всем привет.

Тут народ пытается добиться того, чтобы SetForegroundWindow() правильно работало, а у меня обратная проблема:

Я хочу показать немодальный диалог так, чтобы он при отображении не забирал на себя фокус. Типа балунов в 2К/ХР.
У диалога родитель — главное окно программы. Диалог Popup, System Modal.

Помогите кто чем может.

Всем заранее спасибо.
Re: Сделать не активное окно
От: Othello  
Дата: 05.02.04 16:25
Оценка:
Здравствуйте, MaxK, Вы писали:

MK>Всем привет.


MK>Тут народ пытается добиться того, чтобы SetForegroundWindow() правильно работало, а у меня обратная проблема:


MK>Я хочу показать немодальный диалог так, чтобы он при отображении не забирал на себя фокус. Типа балунов в 2К/ХР.

MK>У диалога родитель — главное окно программы. Диалог Popup, System Modal.

MK>Помогите кто чем может.


MK>Всем заранее спасибо.


Попробуйте чтото вроде

HWND hWnd = GetForegroundWindow();
// Открыть ваше окно
// ...
BringWindowToTop(hWnd);
Re[2]: Сделать не активное окно
От: Carc Россия http://www.amlpages.com/home.php
Дата: 05.02.04 17:37
Оценка:
Здравствуйте, Othello, Вы писали:

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


MK>>Всем привет.


MK>>Тут народ пытается добиться того, чтобы SetForegroundWindow() правильно работало, а у меня обратная проблема:


MK>>Я хочу показать немодальный диалог так, чтобы он при отображении не забирал на себя фокус. Типа балунов в 2К/ХР.

MK>>У диалога родитель — главное окно программы. Диалог Popup, System Modal.

MK>>Помогите кто чем может.


MK>>Всем заранее спасибо.


O>Попробуйте чтото вроде


O>
O>HWND hWnd = GetForegroundWindow();
O>// Открыть ваше окно
O>// ...
O>BringWindowToTop(hWnd);
O>

Все равно фокус хоть на чуток но перескочить должен
я думаю проще так, по крайней мере так было в MFC
extern dlg //public Cdialog
dlg.CreateDialog(IDD_DIALOG);//как диалог создать средствами винапи я сходу не вспомню
ну а тут что вроде
::ShowWindow(hwnd /*созданнаго диалога*/,SW_SHOWNA);//показать НЕмодально и НЕ активизируя
Aml Pages Home
Re: Сделать не активное окно
От: titov_alex  
Дата: 06.02.04 10:21
Оценка:
Здравствуйте, MaxK, Вы писали:

MK>Всем привет.


MK>Тут народ пытается добиться того, чтобы SetForegroundWindow() правильно работало, а у меня обратная проблема:


MK>Я хочу показать немодальный диалог так, чтобы он при отображении не забирал на себя фокус. Типа балунов в 2К/ХР.

MK>У диалога родитель — главное окно программы. Диалог Popup, System Modal.

MK>Помогите кто чем может.


MK>Всем заранее спасибо.


А если так — создать диалог невидимым, а потом — ShowWindow(hWnd,SW_SHOWNA);

В МСДН-не вроде так написано...

SW_SHOWNA
Displays the window in its current size and position. This value is similar to SW_SHOW, except the window is not activated.

ЗЫ просвятите непосвященного, плиз как это — немодальный и System Modal одновременно? Я почему-то всегда думал, что системмодал начит, что он модален по отношению ко всей системе..
Re[2]: Сделать не активное окно
От: Carc Россия http://www.amlpages.com/home.php
Дата: 06.02.04 19:00
Оценка:
Здравствуйте, titov_alex, Вы писали:

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


MK>>Всем привет.


MK>>Тут народ пытается добиться того, чтобы SetForegroundWindow() правильно работало, а у меня обратная проблема:


MK>>Я хочу показать немодальный диалог так, чтобы он при отображении не забирал на себя фокус. Типа балунов в 2К/ХР.

MK>>У диалога родитель — главное окно программы. Диалог Popup, System Modal.

MK>>Помогите кто чем может.


MK>>Всем заранее спасибо.


_>А если так — создать диалог невидимым, а потом — ShowWindow(hWnd,SW_SHOWNA);


_>В МСДН-не вроде так написано...


_>SW_SHOWNA

_>Displays the window in its current size and position. This value is similar to SW_SHOW, except the window is not activated.

_>ЗЫ просвятите непосвященного, плиз как это — немодальный и System Modal одновременно? Я почему-то всегда думал, что системмодал начит, что он модален по отношению ко всей системе..

Хм... погорячился... тогда может вместо модальности диалога назначить ему HWND_TOPMOST — иначе я просто в толк не беру зачем модальный (в полном смысле слова) диалог не активизирующися при созданиии.... Цель вообще какова?
Aml Pages Home
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.