设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 5519|回复: 15
打印 上一主题 下一主题

[窗体] 请教两个窗口全屏的问题

[复制链接]
跳转到指定楼层
#
发表于 2012-9-11 20:45:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
20金钱
本帖最后由 lazybird 于 2012-9-11 20:47 编辑



问题1:我将窗口的“弹出”属性设为“是”并最大化全屏之后,想设计一个“退出全屏”的按钮,希望能够将窗口的“弹出”属性设为“否”并仍然最大化,只是将菜单栏显示出来,请问如何实现? 在代码中插入“Me.Popup=False”总是会报错。

问题2:最大化时请问如何将底部windows菜单栏隐藏(在不设置菜单栏自动隐藏的情况下),做到真正的全屏?
附件: 您需要 登录 才可以下载或查看,没有帐号?注册
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
15#
发表于 2012-10-8 14:33:56 | 只看该作者


测试

本帖子中包含更多资源

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

x
回复

使用道具 举报

14#
 楼主| 发表于 2012-10-6 17:28:53 | 只看该作者
经过考虑,还是选择了2楼的方案,相对简单些,适合我这样的菜鸟。多谢各位专家热心解答。{:soso_e183:}
回复

使用道具 举报

13#
发表于 2012-9-14 23:48:33 | 只看该作者
不如干脆就建两个窗体,版式一样,相互切换,切换时提取并采用前面窗体的RecordSet如何?
回复

使用道具 举报

12#
发表于 2012-9-14 23:46:09 | 只看该作者
WS_POPUP   为弹出
WS_CHILD    为镶钳式子窗体
如果是VB里就更明白些了,在VB里窗体有一个属性MDIChild,如果为"是",那它就无法逃出主程序的框框了.而且这个属性在VB里运行时也是只读的.
回复

使用道具 举报

11#
发表于 2012-9-14 21:36:45 | 只看该作者
下面链接有段代码,管理员发布的
据说可以转换弹出模式的代码,大家运行试试
这样或许能让你更理解问题所在(透过现象看本质)(运行后移动窗体你就会发现问题)

API改变窗体的弹出窗体模式
http://www.office-cn.net/thread-60059-1-1.html
回复

使用道具 举报

10#
发表于 2012-9-13 16:26:33 | 只看该作者
WS_POPUP   和 WS_CHILD   至于为什么不能转换 有个形象的比喻
你有一辆大众的捷达,有一天你突然来了灵感或有了需求,需要将大众的捷达改为大众的桑塔娜,
因为你觉得他们都是同公司同时代同兄弟,容易改、也可以改。
但需不知,里面要改的东西太多了,可能改的成本是直接买的成本5倍,
而且开起来的安全与性能还是个问题?
所以这里还不如重一个窗体。


记住:
能够将窗口的“弹出”属性设为“否”并仍然最大化,只是将菜单栏显示出来!这是你目的

而“其实归根到底我的问题是如何实现通过代码改变窗口的“弹出”属性。”是你实现目的的一种方法

方法可以多种,目的就一个,不要被方法套进去了!


回到你的问题,我建议方法:你应该关闭屏幕响应,然后重新以非弹出方式加载窗体,再刷新屏幕
回复

使用道具 举报

9#
发表于 2012-9-13 16:00:30 | 只看该作者
另外告诉你,你也别指望 用 SetParent 来改变。

上面的代码也是通过偷梁换柱来达到目的

WS_POPUP   和 WS_CHILD   至于为什么不能共容,这说来话长,我也是新手一时也说不上。

接分了
回复

使用道具 举报

8#
发表于 2012-9-13 15:47:49 | 只看该作者


在“CWnd::CreateEx”创建窗体时,WS_POPUP   和 WS_CHILD   是不能同时使用的,
只有创建时才可能设置这MS说的。

而你现在要弹出窗体改为子窗体,是同样 的道理的。


如果你非要,那给你一段VC中的参考代码,
对话框在WS_POPUP与WS_CHILD之间转换(原创)
                                    
BOOL Create( UINT nIDTemplate,CWnd* pParentWnd );

BOOL CChildDialog::Create( UINT nIDTemplate,CWnd* pParentWnd )
{
HINSTANCE hInst = AfxFindResourceHandle( MAKEINTRESOURCE( nIDTemplate ), RT_DIALOG);
HRSRC hResource = ::FindResource(hInst,MAKEINTRESOURCE( nIDTemplate ), RT_DIALOG);
HGLOBAL hTemplate = LoadResource(hInst, hResource);
ASSERT( hTemplate );
LPCDLGTEMPLATE lpDialogTemplate = ( LPCDLGTEMPLATE )LockResource( hTemplate );
ASSERT( lpDialogTemplate );
DWORD *ptrStyle = ( DWORD* )&lpDialogTemplate->style;
*ptrStyle &= ~( WS_OVERLAPPEDWINDOW|WS_POPUPWINDOW );
*ptrStyle |= WS_CHILDWINDOW;
UnlockResource( hTemplate );
BOOL bResult = CreateIndirect(hTemplate, pParentWnd, hInst);
FreeResource(hTemplate);

return bResult;
}

MSDN中的资料:
WS_POPUP   Creates a pop-up window. Cannot be used with the WS_CHILD style.
WS_CHILD   Creates a child window. Cannot be used with the WS_POPUP style.

回复

使用道具 举报

7#
发表于 2012-9-13 15:33:17 | 只看该作者
其实归根到底我的问题是如何实现通过代码改变窗口的“弹出”属性。

不可的。为什么?
==


回复

使用道具 举报

6#
 楼主| 发表于 2012-9-13 10:40:50 | 只看该作者
回楼上的,这样还是不能在显示和不显示Access菜单的两种状态间切换。其实归根到底我的问题是如何实现通过代码改变窗口的“弹出”属性。
回复

使用道具 举报

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 19:38 , Processed in 0.109007 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表