Форум » [x]Harbour » Вывести в окне файл JPG » Ответить

Вывести в окне файл JPG

Лукашевский: Подскажите, как проще всего вывести файл JPG в отдельном окне, и желательно чтобы это окно можно было закрыть по ESC. Или, как вариант, просто запустить открытие JPG-файла программой, определённой для расширения JPG в Windows.

Ответов - 4

Петр: Лукашевский пишет: Или, как вариант, просто запустить открытие JPG-файла программой, определённой для расширения JPG в Windows. run( "start my.jpg" ) ?

Andrey: Можно и так ! /* * ShowWindow() Commands */ #define SW_HIDE 0 #define SW_SHOWNORMAL 1 #define SW_NORMAL 1 #define SW_SHOWMINIMIZED 2 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SW_SHOWNOACTIVATE 4 #define SW_SHOW 5 #define SW_MINIMIZE 6 #define SW_SHOWMINNOACTIVE 7 #define SW_SHOWNA 8 #define SW_RESTORE 9 #define SW_SHOWDEFAULT 10 #define SW_FORCEMINIMIZE 11 #define SW_MAX 11 FUNCTION MAIN() LOCAL cFile := CurDrive()+":"+DirName()+"\mypict.jpg" ? cFile, " - вызов !" ShellExecute(GetDeskTopWindow(), 'open',cFile, "", "" , SW_SHOWNORMAL) wait RETURN NIL /////////////////////////////////////////////////////// #pragma BEGINDUMP #include <windows.h> #include <hbapi.h> #include <shlobj.h> HB_FUNC( GETDESKTOPWINDOW ) { hb_retnl( (LONG)GetDesktopWindow() ); } HB_FUNC( SHELLEXECUTE ) { hb_retnl( (LONG) ShellExecute( (HWND) hb_parnl( 1 ) , (LPCSTR) hb_parcx( 2 ) , (LPCSTR) hb_parcx( 3 ) , ISNIL(4) ? NULL : (LPCSTR) hb_parcx( 4 ) , (LPCSTR) hb_parcx( 5 ) , hb_parni( 6 ) ) ) ; } #pragma ENDDUMP

Лукашевский: Петр пишет: run( "start my.jpg" ) ? Я так и пробовал, и долго не мог понять, почему же не получается? Потом, проверив твой пример, понял, что если файл называется не my.jpg, а my my my my.jpg, то его имя надо брать в отдельные кавычки: Run( 'start ' + '"' + 'my my my my.jpg' + '"') И если при этом для JPG назначить IRFANVIEW, который легко закрывается по ESC, получаем то что нужно. Спасибо.


Лукашевский: Andrey пишет: Можно и так ! /* * ShowWindow() Commands Andrey, спасибо за участие. Наверное, твой вариант даёт более богатый выбор управления окном, в котором откроется файл, но мне пока оказалось достаточно обычного Run. Кроме того, вариант Run практически не увеличивает программный код (ибо он у меня употребляется ещё в куче мест программы), в отличие от варианта ShellExecute.



полная версия страницы