MFC 单线程 多线程 随机数小数 随机数整数

基于对话框的项目,拖入一个EditText控件和一个Button控件

MFC 单线程 多线程 随机数小数 随机数整数

双击按钮,进入按钮事件函数

/// <summary>
/// 产生int伪随机数
/// </summary>
/// <param name="MIN">最小值</param>
/// <param name="MAX">最大值</param>
/// <returns></returns>
int CMFCApplicationTestDlg::GetRand(int MIN, int MAX)//产生随机数
{
    int max;
    max = RAND_MAX;//rand()函数随机数的最大值
    return (int)(rand() * (MAX - MIN) / max + MIN);
}
/// <summary>
/// 产生double伪随机数
/// </summary>
/// <param name="MIN">最小值</param>
/// <param name="MAX">最大值</param>
/// <returns></returns>
double CMFCApplicationTestDlg::GetRand(double MIN, double MAX)//产生随机数
{
    int max;
    max = RAND_MAX;//rand()函数随机数的最大值
    return (double)(rand() * (MAX - MIN) / max + MIN);
}
void CMFCApplicationTestDlg::OnBnClickedButton1()
{
    CWnd* cWnd = GetDlgItem(IDC_EDIT1);
    // TODO: 在此添加控件通知处理程序代码
    CString temp = _T("");
    DWORD threadID= GetCurrentThreadId();
    //srand((unsigned int)time(NULL));//主线程中可以用time作为种子
    srand(threadID);//多线程情况下,工作线程可以用线程的ID作为中子
    for (int i = 0; i <= 300; i++) {
        CString PbStr;
        double d = GetRand(-240.000, 240.000);
        PbStr.Format(_T("%.3lf"), d);
        cWnd->GetWindowTextW(temp);
        temp = temp + PbStr + _T("\r\n");
        cWnd->SetWindowTextW(temp);
        cWnd->RedrawWindow();
    }

运行效果

MFC 单线程 多线程 随机数小数 随机数整数

 

上一篇:重视基础学习的大一同学


下一篇:第7节-MFC对话框的变量绑定