Wywolanie okna podglądu wydruku

problemy z funkcjonowaniem bibliotek, komponentów itp.

Wywolanie okna podglądu wydruku

Nowy postprzez Darek_C++ » środa, 30 lipca 2008, 15:17

W celu wywołania okna podglądu wydruku korzystam z następującej metody komponentu
Kod: Zaznacz cały
WebBrowser1->ExecWB(Shdocvw::OLECMDID_PRINTPREVIEW, Shdocvw::OLECMDEXECOPT_DODEFAULT);

jest to odpowiednik Cppwebbrowser1 z BCB 6. Przy takim wywołaniu kartka papieru jest zorientowana poziomo dopiero w tym oknie wchodząc w ustawienia trzeba zmienić orientację na poziomą, bo o taką mi chodzi. Moje pytanie brzmi: czy idzie tak przerobić wywołanie aby kartka papieru była od razu zorientowana poziomo?

Pozdrawiam
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    NieznanyNieznana

Re: Wywolanie okna podglądu wydruku

Nowy postprzez Cyfrowy Baron » środa, 30 lipca 2008, 15:45

U mnie po wywołaniu wzmiankowanej funkcji:

tak to jest w BCB 10:
Kod: Zaznacz cały
CppWebBrowser1->ExecWB(Shdocvw_tlb::OLECMDID_PRINTPREVIEW, Shdocvw_tlb::OLECMDEXECOPT_DODEFAULT);   


strona od razu jest zorientowana pionowo, więc problem nie istnieje w przypadku kontrolki TCppWebBrowser.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Wywolanie okna podglądu wydruku

Nowy postprzez Darek_C++ » środa, 30 lipca 2008, 15:51

A chodzi o orientację w poziomie:) w usatwieniach standardowych jest pozioma
Obraz w załączniku:
ooooooooooo.jpg
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    NieznanyNieznana

Re: Wywolanie okna podglądu wydruku

Nowy postprzez Cyfrowy Baron » środa, 30 lipca 2008, 15:58

W pomocy do tej funkcji można znaleźć informację:

[...] cmdID specifies the command to execute. The Web Browser does not support all of the commands for which Microsoft providesconstants. Use the QueryStatusWB method to determine what commands can be used.


Czyli nie wszystko obsługuje, a jak się szuka więcej to można się natknąść ta naką informację:

Use QueryStatusWB to determine what commands can be executed using the ExecWB method. QueryStatusWB uses the QueryStatus method of the IOleCommandTarget interface to obtain information about the status of commands. For more information, see the Microsoft documentation of IOleCommandTarget.


Czyli po więcej informacji należy się zwrócić do Microsoftu.



Biorąc to jednak na logikę... CppWebBrowser działa w oparciu o mechanizm zawarty w bibliotece SHDOCVW.DLL, jest to biblioteka z której korzysta Internet Explorer, więc ta kontrolka potrafi tylko tyle (w praktyce mniej) co IE, a w IE okno podglądu może być wywoływane tylko w orientacji pionowej, nie zauważyłem tam żadnej opcji umożliwiającej już na starcie zmianę orientacji, w opcjach też nic takiego nie ma. Łatwo się więc domyśleć, że autorzy biblioteki SHDOCVW.DLL nie przewidzieli takiej opcji. Moim zdaniem szkoda tracić na to czas. CppWebBrowser nie jest komponentem lecz kontrolką ActiveX działającą w oparciu o bibliotekę SHDOCVW.DLL i jest w stanie działać tylko w obrębie tej biblioteki.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Wywolanie okna podglądu wydruku

Nowy postprzez Darek_C++ » środa, 30 lipca 2008, 16:01

Czyli nie idzie, no cóż szkoda...
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    NieznanyNieznana

Re: Wywolanie okna podglądu wydruku

Nowy postprzez Cyfrowy Baron » środa, 30 lipca 2008, 16:25

O sposobie w jaki wyświetlany jest podgląd decyduje drugi parametr:

OLECMDEXECOPT
The OLECMDEXECOPT enumeration specifies command execution options. One value from this enumeration is passed in the nCmdExecOpt argument of IOleCommandTarget::Exec.

typedef enum
{
OLECMDEXECOPT_DODEFAULT = 0,
OLECMDEXECOPT_PROMPTUSER = 1,
LECMDEXECOPT_DONTPROMPTUSER = 2,
OLECMDEXECOPT_SHOWHELP = 3
} OLECMDEXECOPT;

Elements
OLECMDEXECOPT_DODEFAULT
Prompt the user for input or not, whichever is the default behavior.
OLECMDEXECOPT_PROMPTUSER
Execute the command after obtaining user input.
OLECMDEXECOPT_DONTPROMPTUSER
Execute the command without prompting the user. For example, clicking the Print toolbar button causes a document to be immediately printed without user input.
OLECMDEXECOPT_SHOWHELP
Show help for the corresponding command, but do not execute.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Wywolanie okna podglądu wydruku

Nowy postprzez Darek_C++ » środa, 30 lipca 2008, 16:32

Ale tej orientacji mino wszystko nie idzie zmienić :(
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    NieznanyNieznana

Re: Wywolanie okna podglądu wydruku

Nowy postprzez Cyfrowy Baron » środa, 30 lipca 2008, 16:50

Nie gdyż w przypadku podglądu zastosowanie ma tylko pierwsza wartość, pozostałe mają zastosowanie w połączeniu z argumentem: OLECMDID_PRINT
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana


Powrót do Biblioteki i komponenty

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości