MFC中怎么在状态栏中加入静态文本控件和编辑框控件?
3个回答
2013-06-24
展开全部
动态创建头文件中声明:
CEdit* m_Edits;
cpp文件的OnInitDialog函数中:
m_Edits=new CEdit(50);
for(int i=0;i<50;i++)
{
m_Edits[i].Create(……);
}
程序执行结束时:
for(int i=0;i<50;i++)
{
delete []m_Edits;
}
不过这种情况只适合你所有的Edit控件在对话框上的位置都是按规律排列的。如果不是,请用下面的方法:
在头文件中声明足够多元素的CEdit数组:
CEdit m_Edit[50];//假设你事先放好了50个Edit控件
然后找到对话框的DoDataExchange(CDataExchange* pDX)函数,添加如下代码:
DDX_Control(pDX,IDC_XXX, m_Edit[0]);
DDX_Control(pDX,IDC_YYY, m_Edit[1]);
……………………
IDC_XXX和IDC_YYY是各个Edit的ID
像这样手动将所有编辑框添加完就行了,以后就可以用数组的方式访问他们了
CEdit* m_Edits;
cpp文件的OnInitDialog函数中:
m_Edits=new CEdit(50);
for(int i=0;i<50;i++)
{
m_Edits[i].Create(……);
}
程序执行结束时:
for(int i=0;i<50;i++)
{
delete []m_Edits;
}
不过这种情况只适合你所有的Edit控件在对话框上的位置都是按规律排列的。如果不是,请用下面的方法:
在头文件中声明足够多元素的CEdit数组:
CEdit m_Edit[50];//假设你事先放好了50个Edit控件
然后找到对话框的DoDataExchange(CDataExchange* pDX)函数,添加如下代码:
DDX_Control(pDX,IDC_XXX, m_Edit[0]);
DDX_Control(pDX,IDC_YYY, m_Edit[1]);
……………………
IDC_XXX和IDC_YYY是各个Edit的ID
像这样手动将所有编辑框添加完就行了,以后就可以用数组的方式访问他们了
2013-06-24
展开全部
静态的肯定是不行的,只能动态的去创建,首先获取状态栏的句柄,然后用他来创建一个控件,。然后设置他的位置就OK。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给一个静态文本控件添加一个变量,设置该变量的父窗口,如:
CStatic m_Test;m_Test.SetParent(&m_StatusBar);//参数是状态栏的指针或引用。
然后获取具体状态栏的区域位置,移动静态文本控件到该位置,如:
CRect Rect;
m_StatusBar.GetStatusBarCtrl().GetRect(3,Rect);//状态栏的第四个区域
Rect.DeflateRect(1,1,1,1);
m_Parent.MoveWindow(Rect);
类似的编辑框添加同上。
CStatic m_Test;m_Test.SetParent(&m_StatusBar);//参数是状态栏的指针或引用。
然后获取具体状态栏的区域位置,移动静态文本控件到该位置,如:
CRect Rect;
m_StatusBar.GetStatusBarCtrl().GetRect(3,Rect);//状态栏的第四个区域
Rect.DeflateRect(1,1,1,1);
m_Parent.MoveWindow(Rect);
类似的编辑框添加同上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询