如何根据分辨率来调整窗口大小?

happyhqr 2006-12-14 03:07:09
单文档的项目,1024*768中,全屏显示正常,800*600时,单文档不是全屏,而是有滚动条
现在就是想让它在800*600时也是全屏,即没有滚动条,如何实现(左右的滚动条可保留)
...全文
519 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
漂白猪 2006-12-15
  • 打赏
  • 举报
回复
以上方法难道不会导致缩得太小?
不知道VC的字体大小可不可变
eplanet 2006-12-15
  • 打赏
  • 举报
回复
m_List1.GetWindowRect(&rect);//运行到这产生异常
为什么会产生异常哩?
改成GetDlgItem(IDC_LIST)->GetWindowRect(&rect),也产生异常呢?
这是为什么呢?
到底怎么才能获得控件的位置和大小呢?
-----------------------------------------------------

如果在窗口还没有出来的时候就调用,就会出现异常。因为窗口的句柄还是空的。
在一个安全的时机获得,并且在前面判断一下就好了。

----------------------------------------------------
以上方法难道不会导致缩得太小?
不知道VC的字体大小可不可变
----------------------------------------------------
窗口的大小是自己设置的,嫌小放大不就的了。其实只要计算出一个合适的数字就可以了。只是一个算术题而已。
VC控件的字体是随便设置的,包括大小、颜色、编码、字体……。
用 SetFont 方法就可以了。

我在下班路上 2006-12-14
  • 打赏
  • 举报
回复
应该是这样的


。。。。
if(m_List1.getsafewnd())
{
int x=GetSystemMetrics(SM_CXSCREEN);
int y=GetSystemMetrics(SM_CYSCREEN);
CRect rect;
m_List1.GetWindowRect(&rect);//运行到这产生异常
rect.right=rect.right*x/1024;
rect.bottom=rect.bottom*y/768;
m_List1.MoveWindow(&rect);
}
islife 2006-12-14
  • 打赏
  • 举报
回复
楼上的,这样应该不会异常,是不是你调用这句的时候对话框还没出现?
happyhqr 2006-12-14
  • 打赏
  • 举报
回复
m_List1.GetWindowRect(&rect);//运行到这产生异常
为什么会产生异常哩?
改成GetDlgItem(IDC_LIST)->GetWindowRect(&rect),也产生异常呢?
这是为什么呢?
到底怎么才能获得控件的位置和大小呢?
LiChenYue 2006-12-14
  • 打赏
  • 举报
回复
楼上的楼上,我觉得做法是对的。
一分之千 2006-12-14
  • 打赏
  • 举报
回复
SetScrollSizes不可以么?
取得分辨率来设定
happyhqr 2006-12-14
  • 打赏
  • 举报
回复

void CMyView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);


// TODO: Add your message handler code here
int x=GetSystemMetrics(SM_CXSCREEN);
int y=GetSystemMetrics(SM_CYSCREEN);
CRect rect;
m_List1.GetWindowRect(&rect);//运行到这产生异常
rect.right=rect.right*x/1024;
rect.bottom=rect.bottom*y/768;
m_List1.MoveWindow(&rect);

}
这样写对不对呀?
yjgx007 2006-12-14
  • 打赏
  • 举报
回复
However, this depends on your listctrl's client size.
yi10000 2006-12-14
  • 打赏
  • 举报
回复
别急,我们在想办法...
happyhqr 2006-12-14
  • 打赏
  • 举报
回复
我的意思是,
假如有CListCtrl在1024*768全屏显示,在800*600它就超出屏幕范围了,如何将它也调整成800*600,或者说是按原有比例缩小?
xyh2007 2006-12-14
  • 打赏
  • 举报
回复
不清楚,经测试我的程序显示正常,不会出现你说的问题,我的开发环境是VC6.0
corn8888 2006-12-14
  • 打赏
  • 举报
回复
z
happyhqr 2006-12-14
  • 打赏
  • 举报
回复
有没有人帮帮我啊

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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