MFC窗口大小调整

ljthdu 2012-12-28 09:07:06
用vs2010编写的窗口程序,生成的窗口不按在程序中的设定值调整,这如何解决? 求大牛指导。。。
...全文
606 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljthdu 2013-12-25
  • 打赏
  • 举报
回复
引用 22 楼 u011013215 的回复:
涛哥你好
你是?
u011013215 2013-12-18
  • 打赏
  • 举报
回复
涛哥你好
keith_cheung 2013-01-03
  • 打赏
  • 举报
回复
UpdateData( TRUE ); if( m_BCheckInSet ) { CWnd::SetWindowPos(NULL,0,0,piWidth,piHeight ,SWP_NOZORDER|SWP_NOMOVE); } else CWnd::SetWindowPos(NULL,0,0,piWidth,piHeight - 40,SWP_NOZORDER|SWP_NOMOVE); 我这是按 Check 控件值(m_BCheckInSet)来改变窗口大小的例子.
w_xei 2013-01-03
  • 打赏
  • 举报
回复
另外MoveWindow与SetWindowPos都可以胜任,但要在窗口初始化后显示前调用这个函数
w_xei 2013-01-03
  • 打赏
  • 举报
回复
cs.style &= ~WS_OVERLAPPED 修改为 cs.style := ~WS_MAXIMIZE 试一下
smilenot 2013-01-03
  • 打赏
  • 举报
回复
SetWindowPos可以胜任
ljthdu 2012-12-30
  • 打赏
  • 举报
回复
引用 15 楼 xianglitian 的回复:
引用 12 楼 Bokutake 的回复:把LoadStdProfileSettings();去掉。 不过建议你还是在ShowWindow之前MoveWindow。这个方法可行
谢谢大家了! 我弄好了。
向立天 2012-12-29
  • 打赏
  • 举报
回复
引用 12 楼 Bokutake 的回复:
把LoadStdProfileSettings();去掉。 不过建议你还是在ShowWindow之前MoveWindow。
这个方法可行
S_S_Ge 2012-12-29
  • 打赏
  • 举报
回复
MoveWindow
静c心 2012-12-29
  • 打赏
  • 举报
回复
不按程序设定显示,你还设计干嘛
sumos 2012-12-29
  • 打赏
  • 举报
回复
他应该说的是:设计窗口时,vs右下角有个显示大小的 ,他以为这个是像素单位的,其实不是。
向立天 2012-12-29
  • 打赏
  • 举报
回复
没看明白你什么意思
就叫我海 2012-12-29
  • 打赏
  • 举报
回复
MoveWindow? SetWindowPos?
Li_Carey 2012-12-29
  • 打赏
  • 举报
回复
[quote=引用 11 楼 ljthdu 的回复:] 引用 10 楼 Li_Carey 的回复:MoveWindow MoveWindow 不是还要设定窗口显示的位置吗?[/quote 带参数RECT啊.....
辰岡墨竹 2012-12-29
  • 打赏
  • 举报
回复
把LoadStdProfileSettings();去掉。 不过建议你还是在ShowWindow之前MoveWindow。
ljthdu 2012-12-29
  • 打赏
  • 举报
回复
引用 10 楼 Li_Carey 的回复:
MoveWindow
MoveWindow 不是还要设定窗口显示的位置吗?
Li_Carey 2012-12-29
  • 打赏
  • 举报
回复
MoveWindow
ljthdu 2012-12-29
  • 打赏
  • 举报
回复
引用 8 楼 xianglitian 的回复:
引用 7 楼 ljthdu 的回复:BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if(!CFrameWnd::PreCreateWindow(cs)) { return FALSE; } cs.style &= ~WS_OVERLAPPED ……
嗯,能不能再详细点?在哪里设置的? 我试了网上说的几个方法,还是没成功。。
向立天 2012-12-29
  • 打赏
  • 举报
回复
引用 7 楼 ljthdu 的回复:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if(!CFrameWnd::PreCreateWindow(cs)) { return FALSE; } cs.style &= ~WS_OVERLAPPED cs.cy = 300; cs.cx = 100; r……
你是用向导生成的吧 窗口大小框架自动保存在注册表里了 我记得向导里有一步应该是设置这个的 好像代码里也可以找到 不是写注册表就是系统配置的一个ini文件
ljthdu 2012-12-29
  • 打赏
  • 举报
回复
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if(!CFrameWnd::PreCreateWindow(cs)) { return FALSE; } cs.style &= ~WS_OVERLAPPED cs.cy = 300; cs.cx = 100; return TRUE; } 在vs2010中,为什么运行时不会按要求改变窗口大小呢?而且运行的程序我手动拖窗口右下角改变大小后,再次启动时就是改变后的大小,为什么不是按我的CREATESTRUCT变量cs.cx,cs.cy改变大小呢?
加载更多回复(2)

16,467

社区成员

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

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

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