查看: 5012|回复: 2

[已经过期] 关于全屏分辨率问题,求DLL限制的最大分辨率修改办法?

[复制链接]
梦石
0
星屑
50
在线时间
366 小时
注册时间
2009-7-14
回帖
102
发表于 2013-3-13 15:27:39 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 viva0072008 于 2013-3-13 16:52 编辑

现在绝大部分人的显示器多是16:10左右的宽屏屏幕比例,但是RM默认设置的分辨率宽度最大是640,
用了技术区那个修改的DLL,我在脚本里设置成672*416分辨率,不全屏的时候倒是很接近16:10的比例,
但全屏之后画面没有变很大,而且还是比例还是拉伸了,没有填充到整个画面。

因为那个DLL好像是限制了最大分辨率是1024*768,我在想会不会全屏的时候是最大分辨率是整个屏幕,
而我设置了672*416,系统就按最大分辨率:我设置的分辨率比例显示呢,那如果在DLL里面设置最大分辨率跟我设置的分辨率一样,
那么全屏的时候就能填充到整个画面?但我不知道怎么修改那个DLL文件……

原帖:http://rpg.blue/forum.php?mod=viewthread&tid=216674

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2013-3-13 15:37:07 | 显示全部楼层
本帖最后由 tseyik 于 2013-3-13 15:51 编辑

Basic Window Resizer v1.1
百分百是不可能(因為有32点倍数問題)
1.png
[pre lang="ruby" line="1"]   #Basic Window Resizer v1.1
    #----------#
    #Features: Allows you to resize the window to whatever size you like! (This is not
    #            like Graphics.resize, this will scale to fit)
    #
    #Usage:   Script calls:
    #           Window_Resize.r(width, height)     - Self-explanatory
    #           Window_Resize.f                    - fits the game window to monitor size
    #           Window_Resize.full                 - switches to full screen unless already fullscreened
    #           Window_Resize.window               - same as full but opposite
    #
    #No Customization
    #
    #----------#
    #-- Script by: V.M of D.T
    #--- Free to use in any project with credit given
     
    SWPO = Win32API.new 'user32', 'SetWindowPos', ['l','i','i','i','i','i','p'], 'i'
    WINX = Win32API.new 'user32', 'FindWindowEx', ['l','l','p','p'], 'i'
    SMET = Win32API.new 'user32', 'GetSystemMetrics', ['i'], 'i'
     
    module Window_Resize
      def self.r(width, height)
        resw = SMET.call(0)
        resh = SMET.call(1)
        window_loc = WINX.call(0,0,"RGSS Player",0)
        width += (SMET.call(5) + SMET.call(45)) * 2
        height += (SMET.call(6) + SMET.call(45)) * 2 + SMET.call(4)
        x = (resw - width) / 2; y = (resh - height) / 2
        y = 0 if y < 0;x = 0 if x < 0
        SWPO.call(window_loc,0,x,y,width,height,0)
      end
      def self.f
        resw = SMET.call(0)
        resh = SMET.call(1)
        window_loc = WINX.call(0,0,"RGSS Player",0)
        SWPO.call(window_loc,0,0,0,resw,resh,0)
      end
      def self.full
        resw = SMET.call(0)
        return unless resw > 640
        toggle
      end
      def self.window
        resw = SMET.call(0)
        return unless resw < 640
        toggle
      end
      def self.toggle
        keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'
        keybd.call 0xA4, 0, 0, 0
        keybd.call 13, 0, 0, 0
        keybd.call 13, 0, 2, 0
        keybd.call 0xA4, 0, 2, 0
      end
    end
#Basic Window Resizer v1.1
#----------#
#Features: Allows you to resize the window to whatever size you like! (This is not
#            like Graphics.resize, this will scale to fit)
#
#Usage:   Script calls:
#           Window_Resize.r(width, height)     - Self-explanatory
#           Window_Resize.f                    - fits the game window to monitor size
#           Window_Resize.full                 - switches to full screen unless already fullscreened
#           Window_Resize.window               - same as full but opposite
#
#No Customization[/pre]
回复

使用道具 举报

梦石
0
星屑
50
在线时间
366 小时
注册时间
2009-7-14
回帖
102
 楼主| 发表于 2013-3-13 16:16:56 | 显示全部楼层
本帖最后由 viva0072008 于 2013-3-13 16:31 编辑
tseyik 发表于 2013-3-13 15:37
Basic Window Resizer v1.1
百分百是不可能(因為有32点倍数問題)


是个不错的脚本,可以有更多选择,不客气收下了,非常感谢。
不过我想设置的分辨率是672*416,用系统的全屏之后上下无论如何还是会留有黑边,这脚本貌似无法解决,如果改成480的确会占满屏幕,果然还是跟DLL限制的最大分辨率有关,所以把DLL的最大分辨率限制修改成跟我设置的一样,都是672*416,那全屏的时候应该就会填充到整个画面,求修改方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部