EVC简单问题

chris1031   2009-5-19 17:39 楼主
这个问题真的很雷人,对很多人来说,这个是非常弱智的问题。但是对我这个应用菜鸟却很难,不知道如何下手。

在网上找到一些信息,可以使用如下函数实现。

MoveWindow(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));



我加入到OnInitDialog果然使窗口和屏幕大小一致了,可是并不是自己要的效果。如下图。


产生问题一、虽然窗口变大了,但是好像控件的大小,比如按钮等并没有变化,位置还在原来的位置,应用程序只是在下方填充了空白的窗口,这样造成程序很难看。我很少写应用,请大家帮忙一下。指点一二。

产生问题二、点击状态栏和桌面,这个应用程序并不会最小化,其实本来不加也不会最小化,请问各位达人,如何做到最小化?

原始程序窗口是这样的。

回复评论 (24)

1 控件的尺寸和位置要根据窗体的变化而变化,需要代码实现;

2 最小化 要在资源文件的属性中添加
点赞  2009-5-19 17:57
提示: 作者被禁止或删除 内容自动屏蔽
点赞  2009-5-19 18:14
多谢。我看一些书咋没有讲到呢?

这个和VC的MFC 操作方法一致吗?

我用EVC都是些测试的,只是追求自然,不要求很炫那种就可以了
点赞  2009-5-19 21:51
别看evc的。。。看vc的就好了。。。。汗。。去vc的坛子里淘一圈啥资料都有了
vc知识库。。。
evc。。。。做AP都是从VC移植过来,一般的办法:

1.能直接有类库的就直接用。
2.没有的想办法用wince的类库代替或者自己写类库。没其他的办法。。

建议去看看Norains的blog很多好东西可以掏掏。
点赞  2009-5-19 22:33
对话框最大化了, 对话框中的控件是不会变的.
对话框的属性页中有最小化的选项,选上就可以了.
点赞  2009-5-19 23:07
引用: 引用 5 楼 huabinsir 的回复:
对话框最大化了, 对话框中的控件是不会变的.
对话框的属性页中有最小化的选项,选上就可以了.


我看别人的程序在不同的LCD上显示都是比例自然缩放的。咋做的!?
点赞  2009-5-19 23:20
上面都说完了 的确很弱 界面要自己控制
点赞  2009-5-19 23:22
每一个控件的缩放都要写进代码才行。

写一个缩放函数,放在你想要响应的消息函数中(例如最大化消息、拖放消息等)。

这个缩放函数实现获得窗口原尺寸、位置和缩放后的尺寸、位置。算出长和宽的比例系数

长的比例系数=缩放后的长/窗口原长;(宽也类似)

然后再算缩放函数中实现遍历每一个控件,对每一个控件实现下列操作:

1.获得控件在窗口原尺寸(4个坐标点)。
2.算出控件的长和宽
3.算出缩放后的控件的长和宽(缩放后的长=原长*长的比例系数,宽也如此)
4.算出控件左上点的坐标位置(x,y)
     x - 当前窗口左左点横坐标 = 长的比例系数 * (原窗口中控件的左上点横坐标 - 原窗口的左上点横坐标)  同理求出y。
5.依据控件左上点坐标和控件的长和宽重新设定控件显示位置。
6.重绘窗口


点赞  2009-5-20 08:24

这个缩放函数实现获得窗口原尺寸、位置和缩放后的尺寸、位置。算出长和宽的比例系数

这句有点问题,因为在响应消息的时候窗口尺寸已经改变,所有的原尺寸,应该在程序初始化获得,并在窗口改变以后,重新获得,这就需要你在写一个专门遍历所有控件位置的函数。

挺麻烦的。
点赞  2009-5-20 08:39
引用: 引用 9 楼 CBEMA 的回复:

这个缩放函数实现获得窗口原尺寸、位置和缩放后的尺寸、位置。算出长和宽的比例系数

这句有点问题,因为在响应消息的时候窗口尺寸已经改变,所有的原尺寸,应该在程序初始化获得,并在窗口改变以后,重新获得,这就需要你在写一个专门遍历所有控件位置的函数。

挺麻烦的。


哎,我看看VC 的是怎么做的。
点赞  2009-5-20 08:46
VC中应该是响应OnSize函数,在其中根据窗体的实际大小,依次调整每个控件(按钮、编辑框)的大小和位置!
点赞  2009-5-20 09:11
去找个网址看看,我目前也是在Win32平台下实现了,WinCE下不知道可否,不过现在手头上的一个串口工程应该也会用到缩放,关注你的进度
《对话框内部控件自动缩放类》
http://www.vcfans.com/2009/03/automatic-scaling-of-internal-control-dialog-box-type.html

呵呵,给分吧,不用谢了
点赞  2009-5-20 09:17
看看
点赞  2009-5-20 09:38
动态调整控件方面,EVC和VC基本一致!
点赞  2009-5-20 09:45
呵呵,挺不错的哈。vc2005下的确可以。

不过限制边界的那个函数在evc下有个结构(MINMAXINFO)不支持。
点赞  2009-5-20 09:46
从www.pudn.com找了几个VC6.0的例子,正在看,
点赞  2009-5-20 10:33
引用: 引用 12 楼 iwillbeback008 的回复:
去找个网址看看,我目前也是在Win32平台下实现了,WinCE下不知道可否,不过现在手头上的一个串口工程应该也会用到缩放,关注你的进度
《对话框内部控件自动缩放类》
http://www.vcfans.com/2009/03/automatic-scaling-of-internal-control-dialog-box-type.html

呵呵,给分吧,不用谢了


这个应该可以移植到WinCE上
点赞  2009-5-20 10:56
你可以将控件的大小位置等存储在XML文件中,然后自己根据当前窗口区域的大小,再计算然后更新下。
C#里有窗体的自动伸缩及控件的放大,EVC中没有,需要手动实现,估计实现方法类似。
点赞  2009-5-20 12:28
楼主,你设置主窗口的大小是正确的。
但控件不会随着主窗口自动调整大小,需要程序来处理。

驱动调试助手是基于文档的,所以能自动缩放,
控件主要是处理了需要缩放的,其他控件的位置和大小都保持不变,跟界面布局有关。
所以,你考虑一下界面的布局。
点赞  2009-5-20 12:29
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复