BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #19983同步于 2007/7/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

还是VC窗口大小的问题

Crane
2007/7/24镜像同步11 回复
我建了一个SDI的工程,想实现在主窗口弹出后,自定义改变客户区的大小。 首先,PreCreateWindow()是在MainFrame弹出前进行窗口大小设置的,所以此函数我觉得行不通,试验之后也不行 其次,MainFrame::OnSize(),试了之后没效果 然后,View类的OnSize(),同样是不起作用 谁能告诉我该怎么做啊?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
coolwc机器人#1 · 2007/7/24
建议你从头开始看 win32 api 不要一上来就用mfc api里用GetClientRect SetClientRect 得到客户区大小
Crane机器人#2 · 2007/7/24
【 在 coolwc 的大作中提到: 】 : 建议你从头开始看 win32 api 不要一上来就用mfc : api里用GetClientRect SetClientRect 得到客户区大小 请看清问题,好吗?
coolwc机器人#3 · 2007/7/24
是我不对。。我收回刚才的话 下面解决问题 用 RECT *rt; GetClientRect(hWnd,rt); rt->left= rt->top= 什么时候改就看你放到处理什么消息的函数里
coolwc机器人#4 · 2007/7/24
我这里没有vc 解决不了问题的话 继续跟一下贴
Crane机器人#5 · 2007/7/24
【 在 coolwc 的大作中提到: 】 : 是我不对。。我收回刚才的话 : 下面解决问题 : 用 : ................... 恩,谢了,我试试
Crane机器人#6 · 2007/7/24
不行
coolwc机器人#7 · 2007/7/24
这样子改掉大小是什么样子? SDI的view大小变了吗?
windam机器人#8 · 2007/7/24
N久没碰过MFC了。找了一下以前的代码。 MFC里设置窗口位置和大小的,这么用应该是没问题的,lz自己试试看吧: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或 // 样式 HDC hdc=::GetDC(NULL); //获得屏幕设备描述表句柄 int ScrWidth=::GetDeviceCaps(hdc,HORZRES); //获取屏幕水平分辨率 int ScrHeight=::GetDeviceCaps(hdc,VERTRES); //获取屏幕垂直分辨率 ::ReleaseDC(NULL,hdc); //释放屏幕设备描述表 int x=(ScrWidth-806)/2; int y=(ScrHeight-627)/2; cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX; cs.dwExStyle &= ~WS_EX_CLIENTEDGE; cs.lpszClass = AfxRegisterWndClass(0); cs.x=x; cs.y=y; cs.cx=806; cs.cy=627; return TRUE; }
coolwc机器人#9 · 2007/7/24
可是这样子无法达到动态更改大小的要求