Всем привет.
Тут народ пытается добиться того, чтобы SetForegroundWindow() правильно работало, а у меня обратная проблема:
Я хочу показать немодальный диалог так, чтобы он при отображении не забирал на себя фокус. Типа балунов в 2К/ХР.
У диалога родитель — главное окно программы. Диалог Popup, System Modal.
Помогите кто чем может.
Всем заранее спасибо.
Здравствуйте, MaxK, Вы писали:
MK>Всем привет.
MK>Тут народ пытается добиться того, чтобы SetForegroundWindow() правильно работало, а у меня обратная проблема:
MK>Я хочу показать немодальный диалог так, чтобы он при отображении не забирал на себя фокус. Типа балунов в 2К/ХР.
MK>У диалога родитель — главное окно программы. Диалог Popup, System Modal.
MK>Помогите кто чем может.
MK>Всем заранее спасибо.
Попробуйте чтото вроде
HWND hWnd = GetForegroundWindow();
// Открыть ваше окно
// ...
BringWindowToTop(hWnd);
Здравствуйте, 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);//показать НЕмодально и НЕ активизируя
Здравствуйте, 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 одновременно? Я почему-то всегда думал, что системмодал начит, что он модален по отношению ко всей системе..
Здравствуйте, 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 — иначе я просто в толк не беру зачем модальный (в полном смысле слова) диалог не активизирующися при созданиии.... Цель вообще какова?