说明:基于对话框,一个ListCtrl控件(品名,单价),一个Button,OninitDialog()中将ListCtrl内容初始化
过程:OnButton()事件,触发ListCtrl内容变化(单价变化)
我设Rand()函数写入ListCtrl内容,OnInitDialog()调用Rand(),使得ListCtrl初始化,
OnButton()事件仍然调用Rand()函数.编译通过.
问题:
void CGameDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CGameDlg dlg;
dlg.Rand(); return;
}
void CGameDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CGameDlg dlg;
dlg.Rand(); return;
}
编译通过,执行失败.为什么啊.有没有更好的算法,来实现我说的功能呢
过程:OnButton()事件,触发ListCtrl内容变化(单价变化)
我设Rand()函数写入ListCtrl内容,OnInitDialog()调用Rand(),使得ListCtrl初始化,
OnButton()事件仍然调用Rand()函数.编译通过.
问题:
void CGameDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CGameDlg dlg;
dlg.Rand(); return;
}
void CGameDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CGameDlg dlg;
dlg.Rand(); return;
}
编译通过,执行失败.为什么啊.有没有更好的算法,来实现我说的功能呢
{
// TODO: Add your control notification handler code here Rand(); return;
}
是不是因为Oninitdialog()执行时还没有创建m_myDialog成员变量的原因啊
将CGameDlg dlg;//这是不是错??
dlg.Rand();改为
Rand();
就应该可以了,希望对你有帮助。
CGameDlg dlg;
dlg.Rand();
是不是错?
因为dlg仅初始化,而Rand()函数写入ListCtrl内容,此时ListCtrl并不存在,故编译通过,执行失败。
void CGameDlg::OnButton1()
{
// TODO: Add your control notification handler code herem_ListCtrlLeft.DeleteAllItems();
Rand(); return;
}
就可以了.再请教一个问题:
关于随机函数的问题:srand((unsigned)time(NULL));//初始化种子,在程序的初始化阶段执行一次即可
int t = rand()%255;
如何能使得t能随机正负整数呢,谢谢
int t = rand()%255-127;
(-127,127)其他的同理