Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Autorun 
Author Message
Loopback



PostPosted: Fri Sep 05, 2025 19:31    Post subject: Reply with quote

Orion9 wrote:
Его размеры можно изменить. Но...

Да, таких заморочек возникает масса. По скрину видно, что стоит большое значение масштабирования в системе, при динамическом создании окна это надо учитывать и корректировать его размеры. Чтобы хорошо смотрелось везде, можно примерно такой алгоритм использовать:

Code:

Func GetDPI()
  Local DC = DllCall("GetDC", "int", 0)
  Local lpy = DllCall("GetDeviceCaps", "handle", DC, "int", 88) # LOGPIXELSX
  DllCall("ReleaseDC", "int", 0, "handle", DC)
  Return lpy
EndFunc

Func Scale(nValue)
  Static dpi = GetDPI()
  Return DllCall("MulDiv", "int", nValue, "int", dpi, "int", 96)
EndFunc


Использовать так:

Code:

    h_WinShutdown = DllCall("CreateWindowExW", _
                            "dword", 0, _
                            "wstr", "msctls_progress32", _
                            "wstr", "", _
                            "dword", 0x10C80000, _
                            "int", 200, "int", 100, _
                            "int", Scale(300), "int", Scale(50), _
                            "handle", AUTORUN_TCHANDLE, _
                            "handle", 0, "handle", 0, "ptr", 0, _
                            "handle")


Кстати, добавлю макрос для DPI в sysinfo. Тогда GetDPI будет не нужна.

Orion9 wrote:
как затенить окно

В каком смысле затенить?

Orion9 wrote:
Может, Loopback глянет, в чём там может быть проблема

Да тут и смотреть нечего, очевидно что проблема в том, что для свернутого окна возвращаются такие координаты, что при расчёте окно улетает за пределы экрана. Надо добавить проверку в WinAlign и для свёрнутого базового окна ничего не делать.

A55555 wrote:
Каким параметром время отображения подсказки устанавливается?

ShowHint("Монитор выключения запущен, ожидание завершения копирования", 0, 0, 1000, 1)

Время задержки в мс.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group