MFC标签控件
afx_msgvoidOnSelchangeTab1(NMHDR*pNMHDR,LRESULT*pResult);这个函数什么意思呢?括号里面的参数什么意思voidCSa...
afx_msg void OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult);
这个函数什么意思呢?括号里面的参数什么意思
void CSaleDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
if(m_tabCurSel)
{
employeeDlg.ShowWindow(SW_SHOW);
commodityDlg.ShowWindow(SW_HIDE);
}
else
{
employeeDlg.ShowWindow(SW_HIDE);
commodityDlg.ShowWindow(SW_SHOW);
}
m_tabCurSel = 1 - m_tabCurSel;
*pResult = 0;
}
if(m_tabCurSel)是什么意思呢?它的初始值为0的。 展开
这个函数什么意思呢?括号里面的参数什么意思
void CSaleDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
if(m_tabCurSel)
{
employeeDlg.ShowWindow(SW_SHOW);
commodityDlg.ShowWindow(SW_HIDE);
}
else
{
employeeDlg.ShowWindow(SW_HIDE);
commodityDlg.ShowWindow(SW_SHOW);
}
m_tabCurSel = 1 - m_tabCurSel;
*pResult = 0;
}
if(m_tabCurSel)是什么意思呢?它的初始值为0的。 展开
展开全部
afx_msg void FuncName(NMHDR* pNMHDR, LRESULT* pResult);
这个是WM_NOTIFY消息的处理函数的类型,见如下说明:
http://msdn.microsoft.com/en-us/library/749htf6k.aspx
你的这个void CSaleDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
是处理Tab控件切换标签页的通知,一旦你鼠标或者其它操作切换了标签页,程序就会执行到这个函数。这个时候只是切换了标签,标签对应的下面的显示页没有切换,于是,你需要隐藏不显示的,而显示要显示的。
if(m_tabCurSel)
{
employeeDlg.ShowWindow(SW_SHOW);
commodityDlg.ShowWindow(SW_HIDE);
}
else
{
employeeDlg.ShowWindow(SW_HIDE);
commodityDlg.ShowWindow(SW_SHOW);
}
m_tabCurSel = 1 - m_tabCurSel;
tab标签页有序号,0开始的,m_tabCurSel表示当前序号,那个if语句就是查看m_tabCurSel 的值,如果是0就显示0标签对应的对话框,否则就是1标签。
看你这个处理方式,是只适合2个标签页的时候,即m_tabCurSel的值只会是0和1切换,所以m_tabCurSel = 1 - m_tabCurSel;就只是在0和1之间变动,要处理好应该
int curSel = m_tab.GetCurSel(); // 获取当前选择标签序号
switch(curSel)
{
...
}
m_tab假设是你为tab控件关联的控件变量。
*pResult = 0;这个是修改返回值:Your function must return TRUE if the notification message has been completely handled or FALSE if other objects in the command routing should have a chance to handle the message.
这个是WM_NOTIFY消息的处理函数的类型,见如下说明:
http://msdn.microsoft.com/en-us/library/749htf6k.aspx
你的这个void CSaleDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
是处理Tab控件切换标签页的通知,一旦你鼠标或者其它操作切换了标签页,程序就会执行到这个函数。这个时候只是切换了标签,标签对应的下面的显示页没有切换,于是,你需要隐藏不显示的,而显示要显示的。
if(m_tabCurSel)
{
employeeDlg.ShowWindow(SW_SHOW);
commodityDlg.ShowWindow(SW_HIDE);
}
else
{
employeeDlg.ShowWindow(SW_HIDE);
commodityDlg.ShowWindow(SW_SHOW);
}
m_tabCurSel = 1 - m_tabCurSel;
tab标签页有序号,0开始的,m_tabCurSel表示当前序号,那个if语句就是查看m_tabCurSel 的值,如果是0就显示0标签对应的对话框,否则就是1标签。
看你这个处理方式,是只适合2个标签页的时候,即m_tabCurSel的值只会是0和1切换,所以m_tabCurSel = 1 - m_tabCurSel;就只是在0和1之间变动,要处理好应该
int curSel = m_tab.GetCurSel(); // 获取当前选择标签序号
switch(curSel)
{
...
}
m_tab假设是你为tab控件关联的控件变量。
*pResult = 0;这个是修改返回值:Your function must return TRUE if the notification message has been completely handled or FALSE if other objects in the command routing should have a chance to handle the message.
更多追问追答
追问
哦,当前页面是0,就是初始页面,如果我点击另一个,那就变成1,因此显示另一个页面,为什么还有m_tabCurSel=m_tabCurSel-1呢?另外if(m_tabCurSel)这个用法是怎么用的?什么也不加,括号里只有m_tabCurSel,不太懂求详解
追答
关于m_tabCurSel=1-m_tabCurSel
一开始是0,切换第一次以后,是1,然后下一次切换是0,一直切换下去的。
我是假设你没有关联变量,没有UpdateData(不解释这个,不要追问)。
if(m_tabCurSel)是判断m_tabCurSel是否为真(非0),如果是就。。。
去补补C\C++语言吧...
展开全部
afx_msg void OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult);是消息框函数的声明,第一参数是消息处理的句柄,第二个参数是结果返回值,实际上是一个长整型的值。
if(m_tabCurSel)是主窗口下的子窗口是否打开,如果打开就将主窗口隐藏,子窗口显示,如果为零则显示主窗口,隐藏子窗口
if(m_tabCurSel)是主窗口下的子窗口是否打开,如果打开就将主窗口隐藏,子窗口显示,如果为零则显示主窗口,隐藏子窗口
追问
这个程序是标签控件的代码,一个主窗口,2个后添加的窗口,有2个子窗口啊,而且2个子窗口只开一个。
if(m_tabCurSel)什么意思?m_tabCurSel=m_tabCurSel什么作用?程序的运行我不是很懂。求详解哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询