MFC dialog 全屏显示,并让控件居中?

klkvc386 2009-06-22 01:48:23
我想让我的窗口显示全屏,比如,电脑桌面显示大小是,1024x768,
就让dialog主窗口显示,1024x768的大小
但是,用户使用部分大小(控件区域)我只要,800x600
并且让800x600的区域显示在,1024x768,的中间,
请问如何实现,如果一个一个的用代码设置控件位置的话太麻烦了,
不知道,有没有办法,让所有控件合并为一个group,然后显示,这样的话,比较好,不知道如何实现?
我的想法是,把dialog设置为 Child 然后在显示在主窗口,
不知道有没有更好的办法?

...全文
1035 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
warghost 2009-06-22
  • 打赏
  • 举报
回复
这个好办可以在OnInitDialog中写或者自己建个函数OnReInitDialog中加入下面代码

//set full screen display
CRect m_rcMain;
GetWindowRect(&m_rcMain);//restore the src screen's size;

//delete the showing window's caption
long style= GetWindowLong(m_hWnd,GWL_STYLE);
style &=~WS_CAPTION;

//set the window's show sytle
SetWindowLong(m_hWnd,GWL_STYLE,style);

//get the screen's pixel
int screenX = GetSystemMetrics(SM_CXSCREEN);
int screenY = GetSystemMetrics(SM_CYSCREEN);

//show window
SetWindowPos(NULL,0,0,screenX,screenY,SWP_NOZORDER);

//reposition the controllers
CWnd *pWnd;
//“some static string”
pWnd=GetDlgItem(IDC_STATIC_1);
pWnd->SetWindowPos (NULL,screenX/2-130,screenY/5-20,NULL,NULL,SWP_NOZORDER|SWP_NOSIZE);
  • 打赏
  • 举报
回复
父子窗口的方法较简单
fengrx 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 klkvc386 的回复:]
谢谢两位,
除了父子窗口的办法,还有没有其他的办法可以实现group控件??
[/Quote]

楼主原来的思路就很好。
或者:直接计算控件的坐标,MoveWindow将各控件移动到相应位置。
winter_DJ 2009-06-22
  • 打赏
  • 举报
回复
学习
hua_yang 2009-06-22
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/dialog/SizingDialog.aspx
http://www.itzhe.cn/news/20080903/218166.html
klkvc386 2009-06-22
  • 打赏
  • 举报
回复
谢谢两位,
除了父子窗口的办法,还有没有其他的办法可以实现group控件??
skyxie 2009-06-22
  • 打赏
  • 举报
回复
把dialog设置为 Child 然后在显示在主窗口,
---------------------
CWnd::CenterWindow 可以把自己放到父窗口的中间
GetSystemMetrics() 可以得到分辨率的宽度/高度
  • 打赏
  • 举报
回复
你可以创建一个父窗口,然后这个父窗口1024×768,然后创建一个带着控件的子窗口,子窗口是800×600,父窗口出现的时候子窗口跟着出现然后居中

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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