似乎窗戶的大小,例如的開放瀏覽器,是根據屏幕大小或屏幕分辨率或沿着這些線的某種東西來限制的。有沒有辦法繞過這個窗戶,使窗戶任意高?我可以調整Windows中的程序窗口大小嗎?
3
A
回答
1
如果您正在討論您自己的應用程序,則可能最多可呈現用於GDI大小調整的16位座標。對WM_GETMINMAXINFO等進行適當的響應。
如果你在談論別人的作品,他們沒有承諾他們會呈現比屏幕大的作品,因爲明智地將他們的作品剪輯爲可見的作品,而且他們可能會受到其他因素(如DirectX表面的大小小於GDI限制)。
可能如果你在刮你會更好地使用MSAA或UIA從外部操縱窗口並獲取其文本。
馬丁
2
是的。您必須重寫WM_GETMINMAXINFO。在你的鉤子過程中,您可以設置最大X/Y:
MINMAXINFO* pmmi = (MINMAXINFO*)lParam;
pmmi->ptMaxTrackSize.x = desiredY;
pmmi->ptMaxTrackSize.y = desiredX;
要做到這一點對另一個進程可以用WH_GETMESSAGE使用和SetWindowsHookEx()。
2
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$hGUI = GUICreate("", 250, 100, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_THICKFRAME))
GUICtrlCreateLabel("", 0, 0, 250, 100, -1, $GUI_WS_EX_PARENTDRAG)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_GETMINMAXINFO, "WM_GETMINMAXINFO")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUIRegisterMsg($WM_GETMINMAXINFO, "")
Exit
EndSwitch
WEnd
Func WM_GETMINMAXINFO($hWnd, $Msg, $wParam, $lParam)
#forceref $hWnd, $Msg, $wParam, $lParam
Local $minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
DllStructSetData($minmaxinfo, 7, 250) ; min width
DllStructSetData($minmaxinfo, 8, 100) ; min height
DllStructSetData($minmaxinfo, 9, 3000) ; max width
DllStructSetData($minmaxinfo, 10, 3000) ; max height
Return "GUI_RUNDEFMSG"
EndFunc ;==>WM_GETMINMAXINFO
1
會(部分)回答我的問題。事實證明,對於我自己的WinForms應用程序的具體情況,它只是將Form.MaximumSize設置爲足夠大的值,然後增加Form.ClientSize。我猜這個MaximumSize屬性是其他答案中提到的WM_GETMINMAXINFO掛鉤的一個包裝。
相關問題
- 1. 我們可以像調整窗口大小一樣調整Datagridview的大小嗎?
- 2. 我該如何調整我的tkinter程序的窗口大小?
- 3. 我可以在LWUIT MIDLET中調整窗體大小嗎?
- 4. 當窗口調整大小時,Windows窗體是否可以按比例調整其所有內容的大小?
- 5. 可調整大小的窗口控件?
- 6. 調整應用程序的控制,以適應窗口大小
- 7. 需要調整程序的窗口大小以工作
- 8. 調整Silverlight應用程序的大小以適應窗口
- 9. 調整大小窗口的大小
- 10. 使窗口在Windows中不可調整大小
- 11. 如何以編程方式調整Windows 10中的進程窗口大小?
- 12. MDM鋅 - 使窗口可調整大小
- 13. jquery ui:窗口可調整大小
- 14. Windows窗體調整大小
- 15. 調整窗口大小Jquery
- 16. whiptail - 窗口大小調整
- 17. jQuery窗口調整大小
- 18. 調整窗口大小
- 19. 父窗口調整大小?
- 20. 而調整窗口大小
- 21. 調整窗口大小
- 22. 當調整窗口大小
- 23. Python窗口調整大小
- 24. Textarea調整窗口大小
- 25. 調整窗口大小C#
- 26. 調整窗口大小html
- 27. 調整窗口大小
- 28. jQuery窗口大小調整
- 29. 調整Windroy窗口大小
- 30. NSAlert調整窗口大小
馬丁,請您詳細說明「MSAA或UIA」位?原來的問題似乎現在已經解決了,但「知識很好」,對我和其他讀者來說都是這樣:) – EndangeringSpecies
MSAA(舊版)和UIA(新版)是Windows爲輔助工具(屏幕閱讀器等)提供的兩種可訪問性API )在屏幕上查看和修改UI。這使得它們對於其他事情非常有用,例如測試,屏幕抓取等。它們在MSDN上有詳細記錄,對於hwnd UI,所有內容都以WM_GETOBJECT開頭。 –