怎么样可以让我的窗口随着用户机器分辨率的改变而自动改变大小??

pinglv 2001-08-03 09:36:25
代码?
...全文
354 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
pinglv 2001-08-07
  • 打赏
  • 举报
回复
结算了。
pinglv 2001-08-07
  • 打赏
  • 举报
回复
结算了。
pinglv 2001-08-07
  • 打赏
  • 举报
回复
谢谢你的代码。
我现在正在做打印。
晚会儿再试了。
谢谢。
tjf1117 2001-08-07
  • 打赏
  • 举报
回复
function BOOL SetWindowPos(ulong hWnd,ulong hWndInsertAfter, long X, long Y, long cx, long cy, ulong uFlags) LIBRARY "USER32.DLL"

我不清楚w_main是不是就是你的应用程序的窗口啊,
该函数的第一个参数必须是你的应用程序窗口的handle,
第二个参数是说明该窗口的z轴的值,0就是把该窗口BringToFront,拿到前边来。
而且我觉得pb应该提供有包装过的函数才对,
在程序之中调用
SetWindowPos(handle(w_main), 0, 0, 0, 800, 600, 0)
tjf1117 2001-08-07
  • 打赏
  • 举报
回复
回复人: am2000(最后一滴水) (2001-5-8 19:58:00) 得0分
如何修改显示器分辩率

The first function returns the color of a specific pixel(像素;显示器的最小分辨单元). The SetPixel function changes the targeted pixel to the color sent. There is no PowerBuilder equivalent.
Global External Function:
FUNCTION ulong GetPixel(ulong hwnd, long xpos, long ypos) LIBRARY "Gdi32.dll"
FUNCTION ulong SetPixel(ulong hwnd, long xpos, long ypos, ulong pcol) LIBRARY "Gdi32.dll"

Script:
long lx, ly
ulong rtn
ulong l_handle, l_device
lx = 100
ly = 100
l_handle = handle(w_main)
l_device = GetDC(l_handle)
rtn = GetPixel(l_device, 100, 100)
MessageBox("Position " + string(lx) + "," + string(ly),"Color = " + string(rtn))
SetPixel(l_device, lx, ly, 0) // This call will set the pixel at lx, ly to black.


参考这一段那么首先声明
pinglv 2001-08-06
  • 打赏
  • 举报
回复
"随便定义窗体大小,还是只作最大最小化"

不明白。(我笨)
我只想让窗口随着用户分辨率的改变而改变,就是不想窗口的一部分在分辨率变小的情况下被截去,并不需要它最大化或最小化。

谢谢了!
tjf1117 2001-08-06
  • 打赏
  • 举报
回复
我已经看了上边的链接,明天上班我给你代码,我家里的机器没有win32 api的帮助。
tjf1117 2001-08-06
  • 打赏
  • 举报
回复
就像vb那样要把声明自己加进去?你想随便定义窗体大小,还是只作最大最小化?
pinglv 2001-08-06
  • 打赏
  • 举报
回复
支持,不过定义api函数有点别扭。
但是也可以用的。
tjf1117 2001-08-06
  • 打赏
  • 举报
回复
pb提供win32的api支持么?如果提供,我可以给你代码。
pinglv 2001-08-06
  • 打赏
  • 举报
回复
拜托tjf1117别捣乱行不?
我满怀希望打开一看。
唉,失望了。
tjf1117 2001-08-06
  • 打赏
  • 举报
回复
delphi

self.width := 800;
self.height := 600;

哈哈。
pinglv 2001-08-05
  • 打赏
  • 举报
回复
xxrei(心芯蕊) :

呵呵,前两天休息,没来得及试。
刚才试了试,可以的。

不过,呵呵,本人水平太菜,还想知道怎么更改窗口大小呢。
我会加分的。
ALLTEC 2001-08-03
  • 打赏
  • 举报
回复
gz
xxrei 2001-08-03
  • 打赏
  • 举报
回复
然后更改窗口大小就很容易了~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
xxrei 2001-08-03
  • 打赏
  • 举报
回复
int li_screenH,li_screenW
GetEnvironment(le_Env)

li_ScreenH = PixelsToUnits(le_Env.ScreenHeight, YPixelsToUnits!)
li_ScreenW = PixelsToUnits(le_Env.ScreenWidth, XPixelsToUnits!)
if le_env.screenheight=480 then
messagebox("提示信息","系统分辨率为640*480")
elseif le_env.screenheight = 600 then
messagebox("提示信息","系统分辨率为800*600")
elseif le_env.screenheight = 768 then
messagebox("提示信息","系统分辨率为1024*768")
elseif le_env.screenheight = 864 then
messagebox("提示信息","系统分辨率为1152*864")
elseif le_env.screenheight = 1024 then
messagebox("提示信息","系统分辨率为1280*1024")
end if
*****注le_env为系统环境对象,当系统分辨率为800*600时le_env.screenweight = 800,le_env.screenheight=600,do you understand?
试试看行不行?????????????????
liulee 2001-08-03
  • 打赏
  • 举报
回复

窗口的resize事件中。

if sizetype = 1 then return
dw_1.width = newwidth - this.x - 8
dw_1.height = newheight - this.y - 8

以上代码只是保证窗口变化时dw_1自动适应大小,窗口变大变小,和分辨率关系不大。

caolei1974 2001-08-03
  • 打赏
  • 举报
回复
自己试试就行了
pinglv 2001-08-03
  • 打赏
  • 举报
回复
看了,看得迷迷糊糊的。
是自己太笨了。
caolei1974 2001-08-03
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/Topic/99/99464.shtm
加载更多回复(6)

1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧