眉毛变浓密的方法:请问在vc编程中全局变量和局部变量的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 15:39:00
在vc编程中对CtrlList控件在处理单击响应消息的时候获得当前的行数
void CAAdoDlg::OnNMClickReallist(NMHDR *pNMHDR, LRESULT *pResult)
{

for(int i=0;i<m_Reallist.GetItemCount();i++)
{
if(m_Reallist.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
{
int m=i;
}
}
*pResult = 0;
}

我想在另外的函数体内中使用i的值但是又不想用全局变量,请问如何操作呢?非常感谢!
能够给我详细讲下局部变量在vc中怎么传递使用么?比如在另外个类中如何调用当前类的函数之类的,我会适当加分的,谢谢:)

回答1楼的:感谢1楼的....不过还需要处理wm消息啦,那怎么调用呢????对于m_Reallist.? 要获取鼠标左键单击事件予以获得当前行.

不是默认生成一个消息处理函数么 就是你上面那个?你可以在那里面处理消息阿,消息处理一切照旧就可以了

方法一 你可以把i放在类CAAdoDlg的声明(CAAdoDlg.h)里让他成为这个类的成员变量。当然你可以声明为私有类型.

方法二 你可以在函数参数中穿一个指针或者引用过去

好吧 如果你需要另外一个函数改变i的值的话就要传一个指针过去

//使用i的函数
usei(int* i)
{
//使用i的时候就
*i ++;
*i = i - 1;

}

//调用时
usei(&i)

如果你只是想取得行数的话 给你的控件申请一个控件变量 m_CtrlList1

然后再需要的时候调用它的一个取得当前行的成员函数不就行了么?去看看msdn里面有这个函数 我忘记了应该是get打头的

在另外一个类里面掉用这个类的函数?我不是很理解你的意思,如果说是使用成员函数的我倒是可以理解。
class a
{
fn();
static fn2();
}

这样你在另一个类的实现函数里
#include <a.h>

....
void b::fnB()
{
a A1;
//调用普通成员
A1.fn();
//调用静态成员
A1.fn2();
a::fn2();

//使用指针
a *A2 = new a;
//调用普通成员
A2->fn();
//调用静态成员
A2->fn2();
a::fn2();

delete A2
}