设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
1#
发表于 2012-9-13 15:33:17 | 显示全部楼层
其实归根到底我的问题是如何实现通过代码改变窗口的“弹出”属性。

不可的。为什么?
==


回复

使用道具 举报

2#
发表于 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.

回复

使用道具 举报

3#
发表于 2012-9-13 16:00:30 | 显示全部楼层
另外告诉你,你也别指望 用 SetParent 来改变。

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

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

接分了
回复

使用道具 举报

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


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

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

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


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

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 20:00 , Processed in 0.122629 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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