C语言中怎样让tablelayoutpanel中控件居中显示?

C语言中怎样让tablelayoutpanel中控件居中显示?,第1张

从“工具箱”中将一个 TableLayoutPanel 控件拖到窗体上。

将 Button 控件从“工具箱”拖到 TableLayoutPanel 控件左上部的单元格中。 Button 在单元格中居中。

将 Button 控件的 Anchor 属性值设置为 Left,Right。 Button 控件将拉伸到与单元格的宽度相符。

将 Button 控件的 Anchor 属性的值设置为 Top,Bottom。 Button 控件将拉伸到与单元格的高度相符。

将 Button 控件的 Dock 属性值设置为 Fill。 Button 控件将扩展到填满单元格。

将 Button 控件的 Dock 属性值设置为 None。 Button 控件将恢复到原始大小并移动到单元格的左上角。 “Windows 窗体设计器” 已将 Anchor 属性设置为 Top, Left。

将 Button 控件的 Anchor 属性值设置为 Bottom,Right。 Button 控件将移动到单元格的右下角。

将 Button 控件的 Anchor 属性值设置为 None。 Button 控件将移动到单元格的中心。

IDC_CHECK1这些都是一个宏而已,其本身是一个无符号整数而已,你可以在IDC_CHECK1上右击选择gotodefinition,就可以看到IDC_CHECK1表示的整数了(或者在Resource.h中查看),然后你可以把IDC_CHECK1到20修改成连续的,这样只需要用static int x=0;

IDC_CHECK1+(x++)%20就可以遍历所有控件了

首先创建一个基于对话框的MFC工程,为了让对话框可以通过拖拽边框自由改变大小,需要设置对话框的属性。

打开资源视图,在对话框上点右键,选择Properties->Styles->Border,在下拉框中选择Resizing,这样就可以动态改变对话框的大小了。

有两个函数可以实现这个功能:

(1) MoveWindow():

void MoveWindow(int x,int y,int nWidth,int nHeight)

x, y为控件位置;nWidth、nHeight为控件宽度和高度

(2) 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,维持大小不变;

SWP_SHOWWINDOW:显示窗口

下面分别介绍如何使用这两个函数:

首先同时按下Ctrl+W,d出类向导对话框,选择响应WM_SIZE消息。在消息响应函数OnSize()中添加如下代码:

void COnSizeTestDlg::OnSize(UINT nType, int cx, int cy)

{

CDialog::OnSize(nType, cx, cy)

// TODO: Add your message handler code here

//创建对话框时,控件还没有创建,因此不能改变其大小(必须加上这两行代码)

if(!IsWindowVisible())

return

//获取客户区矩形

CRect rect

GetClientRect(&rect)

//动态改变控件大小

CWnd *pButton = GetDlgItem(IDC_BUTTON1)

pButton->MoveWindow(

rect.right/5, //x轴1/5处

rect.bottom/5, //y轴1/5处

rect.right/5*2, //x轴的2/5宽度

rect.bottom/5*2 //y轴的2/5高度

)

}

把MoveWindow()函数换成SetWindowPos():

pButton->SetWindowPos(

NULL,

rect.right/5,

rect.bottom/5,

rect.right/5*2,

rect.bottom/5*2,

SWP_NOZORDER|SWP_SHOWWINDOW

)

效果一样。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/10967604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存