如何正确显示控件-在客户区中 现在我在客户区中放置了一个静态框,一个Listview,两个控件问题1:我如何得到这个静态框的大小,如何得到ListView的大小2:如何根据不同的分辨率来动态的改变静态框和ListView的大小3:它的相对位置如何改变呀? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同意楼上。得到客户区、各个控件的RECT,根据你得规则重新计算大小,然后MoveWindow。只是其中要注意所使用RECT得相对位置,是相对客户区还是屏幕的。我以前就是这么做了。确实比较繁琐,如果东西多的化。 先声明你的静态框控件,如你的Edit控件,声明为m_edtMain然后调用:RECT rect;m_edtMain.GetWindowRect(&rect);移动时可以用SetWindowPos(...)来改改变控件的位置. 依照如下调用序列:GetWindowRectScreenToClientSetWindowPos GetWindowRectMoveWindow::GetDC()->GetDeviceCaps(HORZRES);SetWindowPos 得到分辨率int cx = GetSystemMetrics(SM_CXSCREEN); int cy = GetSystemMetrics(SM_CYSCREEN);CRect rect;m_listViev.GetClientRect(&rect); //得到大小GetDlgItem(IDC_STATIC1).GetClientRect(&rect1);//可这样根据分辨率设定位置和大小m_listView.SetWindowPos(this, cx*1/10,cy*1/10 ,cx*2/10 ,cy*3/10 SWP_SHOWWINDOW|SWP_NOZORDER); 应该在哪个事件中设置这些属性呢?我在OnInitialUpdate()创建的,不管用首先我想设置控件的大小,因为我并不知道满屏的时候有多宽,所以我想根据得到客户区 的宽度来设置静态框的宽度,高度按照自己设置的设置,然后再设置listView的宽度,设置方法是:得到客户区的高度和宽度,然后减去已经使用的高度,使其正好充满客户区 release后视图位置乱了 数据库连接的一个基本问题 我想通过一个按钮来动态创建一个LISTBOX,下面程序不知行不行啊,反正我没有试出来 郁闷呀。到底是专心搞专业好,还是停下来好好学习基础知识。 VC6。0问题 保存文本文件的一个问题CreateFile() 求FindWindow详解? CListView 的问题 还有人在吗? 急,为什么CopyFileEx()会出错,'CopyFileEx' : undeclared identifier 简单问题,如何复制文件 谁知道抓屏的算法,说的详细一点好吗。 to: echoxue(虎子)
得到客户区、各个控件的RECT,根据你得规则重新计算大小,然后MoveWindow。只是其中要注意所使用RECT得相对位置,是相对客户区还是屏幕的。我以前就是这么做了。确实比较繁琐,如果东西多的化。
然后调用:
RECT rect;
m_edtMain.GetWindowRect(&rect);移动时可以用SetWindowPos(...)来改改变控件的位置.
GetWindowRect
ScreenToClient
SetWindowPos
MoveWindow
::GetDC()->GetDeviceCaps(HORZRES);
SetWindowPos
int cy = GetSystemMetrics(SM_CYSCREEN);
CRect rect;
m_listViev.GetClientRect(&rect); //得到大小
GetDlgItem(IDC_STATIC1).GetClientRect(&rect1);//可这样根据分辨率设定位置和大小
m_listView.SetWindowPos(this, cx*1/10,cy*1/10 ,cx*2/10 ,cy*3/10 SWP_SHOWWINDOW|SWP_NOZORDER);
我在OnInitialUpdate()创建的,不管用首先我想设置控件的大小,因为我并不知道满屏的时候有多宽,所以我想根据得到客户区 的宽度来设置静态框的宽度,高度按照自己设置的设置,然后再设置listView的宽度,设置方法是:得到客户区的高度和宽度,然后减去已经使用的高度,使其正好充满客户区