一點點有關如何精確控制 HTML Application 視窗大小的心得……
為了調整 handy hiRadio 播放面板的視窗大小,能盡量適合各種不同的情況(Vista 樣式、XP 風格樣式、Windows 經典樣式)、不同的 DPI 設定(通常是 96、少數為 120、更少數為其他),在翻過 MSDN 確認沒有直接偵測的方式後,開始了一整個下午的實驗測試……
用 Virtual PC 先準備好我要的 Windows 環境,接下來就是實際嘗試怎麼配出適合所有環境的視窗大小。首先要個別量出各種模式下的標題列高度、選單列高度、實際可用範圍的高度,然後尋找其中的規則。
先是意外發現 screen.height - screen.availHeight 幾乎等於標題列的高度;接著選單高度也好搞定,只要根據與標準的 96 DPI 之間的差距做等比例的調整就好了。原則上常見的選單文字大小約為 18 ~ 20 px,然後再以 screen.deviceYDPI 取得系統 DPI 設定值,根據比例調整就可以了。
有了以上資訊之後,理論上只要再加上所需要的像素數,就可以精確定出視窗所需要的大小,並且滿足大部分不太誇張的視窗外觀設定。
不過事實上卻還有那麼一點出入,反覆推敲確定上述的算法應該沒問題,後來又找了半天,才發現也許問題是出在視窗邊框的粗細。可惜目前還沒想出可以得知邊框粗細的方法,所以還是沒能完美地解決這個問題。
然後,一個下午的時間就這樣整個消失掉了!
不管怎樣,現在 handy hiRadio 的調整已經差不多告一個段落了,一些很奇怪的小地方也盡量嘗試用某些很奇怪的方式來解決。沒什麼問題的話,這兩天應該就會正式發表新的版本,並且用來取代 2.1.4 這一系列的分支版本。
雖然這個新版本的容量變大不少(將近 100k),並且也打破原來只有一個檔案的極簡狀態。不過對比新加入的功能,我想這樣的犧牲是還算值得的。
敬請期待
辛苦了!
這個真的是非常方便的東西!
評論由 ajer001 發表 @ 五月 14 日, 2007 1:53 上午
真辛苦你了
我也來推一把
這個小東西確實很不錯
加油
評論由 海洋 發表 @ 五月 14 日, 2007 2:58 上午
辛苦了,有在用這好東西的我也來回應一下..:)
不過,變成不是一個檔的情況下,是指..需要安裝了嗎?
不過還是挺期待新功能的..:P
評論由 小毛 發表 @ 五月 14 日, 2007 4:08 上午
若是常常有使用 Virtual Machine 的需求......
可以考慮看看 VirtualBox
http://www.virtualbox.org/
效率比 VIrtualPC 高多了.....
評論由 Simon 發表 @ 五月 14 日, 2007 9:36 上午
to 小毛:
嚴格來講,這個新版確實需要安裝沒錯,不過我會分成含安裝程式的版本與不含安裝程式的版本來發表。
如果是用不含安裝程式的版本,第一次執行的時候會提示需要安裝某個控件,只要按個確定就會自動裝好了,所以應該不會造成太大的困擾。
因為接下來可能會有一陣子比較忙,所以我決定還是把新的 handy hiRadio 2.5.4 先放出來,請到 handy hiRadio Project 下載吧。
to Simon:
VirtualBox 我目前正在慢慢摸索中,不過效率方面暫時還沒有很明確的感受。
目前只知道 Ubuntu 一類的 Linux 作業系統,要在 VirtualBox 下才能安裝;用 Virtual PC 的話畫面會花掉……
至於 Windows 用起來倒是還沒感覺出有什麼差別。而且 VirtualBox 的 Snapshot 功能我一直用不順手,所以暫時還不會成為我的測試主力機。
不過,我會持續注意這個優秀的免費開源軟體的
評論由 C.H.Weng 發表 @ 五月 14 日, 2007 10:33 下午
算邊框粗細還不簡單, 拍圖>>小畫家貼上>>放大>>計算粗細
評論由 冰漾 發表 @ 五月 15 日, 2007 4:23 上午
不簡單喔~因為程式自己不會做這些事情……
目前的問題在於,沒辦法偵測使用者究竟是使用 XP 樣式或是 2000 以前的傳統樣式,然後這兩種樣式的邊框粗細又不一樣。
所以目前只能用大概的方式,讓兩種模式看起來都不會太誇張。
評論由 C.H.Weng 發表 @ 五月 15 日, 2007 7:33 上午