VS C++ MFC 控件怎么修改大小?属性里 没有size一项。。难道只能用鼠标去拉着看左下角的坐标和大小吗??
展开全部
MFC中的控件大小是可以修改的,但是有点麻烦,具体方法如下:
CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。
void MoveWindow(int x,int y,int nWidth,int nHeight);void MoveWindow(LPCRECT lpRect);第一种用法需给出控件新的坐标和宽度、高度;第二种用法给出存放位置的CRect对象;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT1为控件ID号pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角显示一个宽100、高100的编辑控件
SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);第一个参数我不会用,一般设为NULL;x、y控件位置;cx、cy控件宽度和高度;nFlags常用取值:SWP_NOZORDER:忽略第一个参数;SWP_NOMOVE:忽略x、y,维持位置不变;SWP_NOSIZE:忽略cx、cy,维持大小不变;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_BUTTON1 ); //获取控件指针,IDC_BUTTON1为控件ID号pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的(50,80)处pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把编辑控件的大小设为(100,80),位置不变pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //编辑控件的大小和位置都改变以上方法也适用于各种窗口。
CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。
void MoveWindow(int x,int y,int nWidth,int nHeight);void MoveWindow(LPCRECT lpRect);第一种用法需给出控件新的坐标和宽度、高度;第二种用法给出存放位置的CRect对象;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT1为控件ID号pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角显示一个宽100、高100的编辑控件
SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);第一个参数我不会用,一般设为NULL;x、y控件位置;cx、cy控件宽度和高度;nFlags常用取值:SWP_NOZORDER:忽略第一个参数;SWP_NOMOVE:忽略x、y,维持位置不变;SWP_NOSIZE:忽略cx、cy,维持大小不变;例:CWnd *pWnd;pWnd = GetDlgItem( IDC_BUTTON1 ); //获取控件指针,IDC_BUTTON1为控件ID号pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的(50,80)处pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把编辑控件的大小设为(100,80),位置不变pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //编辑控件的大小和位置都改变以上方法也适用于各种窗口。
展开全部
不是,在资源视图中,右下角状态栏中是显示控件的大小的,选中控件后都可以看到;
而控件的位置则是这样:
如果你没有额外的代码控制并且说有控件都是可见的,会按照你资源模板上的位置和大小显示;
如果你的代码中有额外控制的,比如说调用过MoveWindow或者SetWindowPos函数,会显示在你指定的位置上(注意坐标系的转换)
希望对你有所帮助
追问
我选择控件后,右下角是可以看到 控件 “相对坐标”和“控件长宽像素比”
但是我想类似VB一样 手动输入数值更改 他的坐标和长宽像素比。
找不到地方输入。。更改rc又太麻烦了。
追答
这个没法了,只能在代码中调用MoveWindow或者SetWindowPos了,这两个里面的参数中包含了你要输入的那些数据,可以研究研究
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你之前有了很好的布局构想,就在 .rc文件里改吧,用编辑器打开,你应该能认识;
单纯调整的话,资源编辑时,界面里不是有 排列、对其的按钮么?你没看到?
单纯调整的话,资源编辑时,界面里不是有 排列、对其的按钮么?你没看到?
追问
我选择控件后,右下角是可以看到 控件 “相对坐标”和“控件长宽像素比” 但是我想类似VB一样 手动输入数值更改 他的坐标和长宽像素比。找不到地方输入。。更改rc又太麻烦了。
我不是想排列和对齐。。那些我知道。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询