社区
界面
帖子详情
CFormView大小改变问题
fvan
2005-01-09 11:32:13
用VC生成一个视图框架,视图类继承CFormView.当视图大小改变时,CFormView不随改变,(视图小于时会出现滚动条)。我在重载了消息OnSize却总是显示不正常。
该如何实现CFormView随着视图区域的变化而变化
...全文
1140
15
打赏
收藏
CFormView大小改变问题
用VC生成一个视图框架,视图类继承CFormView.当视图大小改变时,CFormView不随改变,(视图小于时会出现滚动条)。我在重载了消息OnSize却总是显示不正常。 该如何实现CFormView随着视图区域的变化而变化
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stavck
2005-01-18
打赏
举报
回复
第一次发WM_SIZE时,窗口都没有创建,这时候引用就会把访问非法地址的错误!
fvan
2005-01-18
打赏
举报
回复
谢谢了,可我不明白为什么没判断 m_Button.GetSafeHwnd() 是否为NULL则
总是运行出错呢?
stavck
2005-01-18
打赏
举报
回复
void CMyView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
if(m_Button.GetSafeHwnd() != NULL)
{
m_Button.MoveWindow(cx-100,cy-100,60,30);//没有此,则运行正常
}
SetScrollSizes(MM_TEXT,CSize(cx,cy));
}
fvan
2005-01-18
打赏
举报
回复
UP
fvan
2005-01-18
打赏
举报
回复
我用的方法如下
void CMyView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
m_Button.MoveWindow(cx-100,cy-100,60,30);//没有此,则运行正常
SetScrollSizes(MM_TEXT,CSize(cx,cy));
}
即重载CMyView中的OnSize,不产生滚动条能做到,但想让控件在离右下角的固定
位置显示,运行却总出错。该如何解决?
fvan
2005-01-18
打赏
举报
回复
楼上的,我在View直接重载OnSize也试过,显示不正常啊
stavck
2005-01-18
打赏
举报
回复
void CMyView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
CRect rc;
GetClientRect(&rc);
if(GetSafeHwnd() != NULL)
{
MoveWindow(&rc);
}
}
fvan
2005-01-18
打赏
举报
回复
上述办法虽然能行,但又有新的问题,
若在动态的改变CFormView中控件的大小或位置,编译能通过去运行总出错,
有什么解决办法吗?
fengqinggao
2005-01-10
打赏
举报
回复
在CMainFrame里重载OnSize,设置CFormView的大小,或者调用CFormView里的设置大小的函数……
oyljerry
2005-01-10
打赏
举报
回复
重载OnSize消息,然后MoveWindow调整大小成比例
poplau
2005-01-10
打赏
举报
回复
我是这样做的。
首先将CFormView和资源文件dialog联系起来,然后把dialog长宽设置得很小。
然后可以用CFormView中的SetScrollSize来设定CFormView的大小,具体用法可以看看MSDN
Kudeet
2005-01-10
打赏
举报
回复
同意楼上
external YourCtrl yourCtrl;
RECT rect;
GetClientRect(&rect);
int cx = rect.left+10;
int cy = rect.top +20;
int width = rect.right- rect.left - 10 - 10;
int height = rect.bottom - rect.top - 20 -20;
yourCtrl.SetWindowPos(
NULL,
cx,
cy,
width,
height,
SWP_DRAWFRAME);
cdchengyi
2005-01-10
打赏
举报
回复
在OnInitialUpdate()里添加
CSize sizeTotal;
sizeTotal.cx=0;
sizeTotal.cy=0;
SetScrollSizes(MM_TEXT, sizeTotal);
在onsize()里加
CFormView::OnSize(nType, cx, cy);
Invalidate(TRUE);
fvan
2005-01-10
打赏
举报
回复
就是重载Onsize中用MoveWindow,可总是显示不正常?不知阁下如何实现啊
fvan
2005-01-09
打赏
举报
回复
up
《Visual C++范例大全》随书光盘 第八章
第8章 实例173——在视图中使用鼠标进行绘图操作(涂鸦) 实例174——在文档中记录绘图... 实例200——动态
改变
分割窗口的
大小
实例201——定制分隔条的外观特性 实例202——分割窗口形成的多视图实现与文档的交互
VC++常用功能实例
修改应用程序图标 7 系统只能允许一个程序运行 7 在状态栏中添加时间 8 研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5...
VC++ 专家指导.doc
(77) 我该如何
改变
MDI框架窗口的子窗口的
大小
以使在窗口以一定的
大小
打开? 67 (78) 在我的程序的某些部分,我可以调用 MessageBox 函数来建立一个信息对话框,例如在视类中。 67 (79) 我需要在我的程序中设置...
VC++常用的共用函数100多页
修改应用程序图标 7 系统只能允许一个程序运行 7 在状态栏中添加时间 8 研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5...
Visual C++ 编程资源大全(英文控件)
23.zip Resizing the Tab Control
改变
Tab控制的
大小
(2KB)<END><br>18,24.zip Moving and Resizing the Property Pages 移动并
改变
属性页
大小
(3KB)<END><br>20,27.zip Using ON_UPDATE_COMMAND_UI ...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章