Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WebBrowser1.ExecWB(OLECMDID_PRINTPREVIEW, 0) ;в свернутом виде?! [D6, WinXP]


brestmarket ©   (2002-11-06 14:25:00) 

Почему окно с предпросмотром при вызове WebBrowser1.ExecWB(OLECMDID_PRINTPREVIEW, 0);
запускается в свернутом (не в панель задач) а до минимальных размеров на экране? Как его развернуть на полный экран по умолчанию?


int64   (2002-11-08 00:55:00) [1]

Ну вот, "более грамотно":

...
private
PrintPreview: boolean;
FOldWindowProc: TWndMethod;
procedure FormWndProc(var AMsg: TMessage);
...

procedure TForm1.FormCreate(Sender: TObject);
begin
FOldWindowProc:= WindowProc;
WindowProc := FormWndProc;
end;

procedure TForm1.FormWndProc(var AMsg: TMessage);
var
wnd: Integer;
Msg: TWmActivate;
begin
if AMsg.Msg = WM_ACTIVATE then
begin
Msg := TWmActivate(AMsg);
wnd := Msg.ActiveWindow;
if PrintPreview then
begin
//здесь упрявляем popup окном
MoveWindow(wnd, 0, 0, Screen.Width, Screen.Height, true);
PrintPreview := false;
end;
end;
FOldWindowProc(AMsg);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
PrintPreview := true;
WebBrowser1.ExecWB(OLECMDID_PRINTPREVIEW, 0);
end;


Это пример, как управлять Popup Windows.
Логика та же: ловим-растягиваем.


brestmarket   (2002-11-07 23:00:00) [2]

Предложенный вариант тобой, конечно сработает, но наверняка, можно как-то более грамотно, чем просто поиск по заголовку окна.


int64   (2002-11-07 14:18:00) [3]

WebBrowser1.ExecWB(OLECMDID_PRINTPREVIEW, 0);
Wnd := FindWindow(nil, "Предварительный просмотр");
PostMessage(Wnd, WM_SYSCOMMAND, SC_MAXIMIZE,0);


А если хочешь, чтоб без этих строк - делай форму (на которой WebBrowser1) во весь экран.


brestmarket   (2002-11-07 02:44:00) [4]

Хорошо. Все что я делаю - вызываю WebBrowser1.ExecWB(OLECMDID_PRINTPREVIEW, 0);
На что здесь handle - если можно пример, - но я думаю, что эту задачу можно решить не просто растягиванием. Вопрос по прежнему актуален!


int64   (2002-11-06 19:20:00) [5]

Это окно, по умолчанию, всегда имеет размер как у формы, вызвавшего это окно приложения.

А если нужно во весь экран, в чём проблема? Бери хендл этого окна, да и растягивай, как тебе надо.


brestmarket   (2002-11-06 18:31:00) [6]

Прошу помочь. Беда приключилась по непонятной причине, хотя раньше этот код работал безукоризненно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо