- Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TEdytorMainForm::Zoom_plusClick(TObject *Sender)
{
OleVariant t;
WebBrowser1->ExecWB(OLECMDID_OPTICAL_ZOOM,
::OLECMDEXECOPT_PROMPTUSER, NULL, t);
if(t.intVal <= 160)
{
t = (OleVariant)((int)t + 10);
WebBrowser1->ExecWB(OLECMDID_OPTICAL_ZOOM,
::OLECMDEXECOPT_PROMPTUSER, t, t);
}
}
//---------------------------------------------------------------------------
void __fastcall TEdytorMainForm::Zoom_minusClick(TObject *Sender)
{
OleVariant t;
WebBrowser1->ExecWB(::OLECMDID_OPTICAL_ZOOM,
::OLECMDEXECOPT_PROMPTUSER, NULL, t);
if(t.intVal >= 40)
{
t = (OleVariant)((int)t - 10);
WebBrowser1->ExecWB(OLECMDID_OPTICAL_ZOOM,
::OLECMDEXECOPT_PROMPTUSER, t, t);
}
}
//---------------------------------------------------------------------------
void __fastcall TEdytorMainForm::Zoom_0Click(TObject *Sender)
{
OleVariant t;
t = (OleVariant)100;
WebBrowser1->ExecWB(OLECMDID_OPTICAL_ZOOM,
::OLECMDEXECOPT_PROMPTUSER, t, t);
}
//---------------------------------------------------------------------------
kod działa bez zarzutu, jednak ustawienia tego zoom'u nie są wczytywane po ponownym uruchomieniu programu, podczas gdy w IE są wczytywane takie ustawienia. Nie wiem czy jest to problem z funkcją ExecWB, ale nie sądzę by tak było, to chyba raczej problem ze sposobem wczytywania strony, lub też po załadowaniu strony trzeba wywołać funkcje ExecWB z jakimś parametrem by załadować ustawienia zoom'u dla ładowanej strony.
Czekam na sugestie.
Ważna uwaga. Funkcja ZOOM działa chyba dopiero od IE 7, więc żeby wypróbować ten kod trzeba mieś zainstalowaną przeglądarkę w co najmniej tej wersji.