卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

MFC應(yīng)用實(shí)例:查找與替換對(duì)話框

本文介紹了MFC應(yīng)用程序中查找與替換對(duì)話框的使用方法。首先,在新建一個(gè)基于對(duì)話框的應(yīng)用程序時(shí),工程名可以命名為FindDlgDemo。 界面設(shè)計(jì) 在界面設(shè)計(jì)中,我們需要添加兩個(gè)按鈕、一個(gè)編輯框和一

本文介紹了MFC應(yīng)用程序中查找與替換對(duì)話框的使用方法。首先,在新建一個(gè)基于對(duì)話框的應(yīng)用程序時(shí),工程名可以命名為FindDlgDemo。

界面設(shè)計(jì)

在界面設(shè)計(jì)中,我們需要添加兩個(gè)按鈕、一個(gè)編輯框和一個(gè)文本控件。這樣用戶就可以在編輯框中輸入要查找的字符串,并通過點(diǎn)擊“查找”按鈕進(jìn)行查找操作。

響應(yīng)函數(shù)OnFind()

對(duì)于“查找”按鈕,我們需要為其添加一個(gè)響應(yīng)函數(shù)OnFind()來處理查找操作。具體代碼如下:

void CFindDlgDemoDlg::OnFind()
{
    UpdateData(true);
    int pos  0;
    if (pFindReplaceDlg) //判斷是否已存在一個(gè)對(duì)話框
    {
        pFindReplaceDlg->SetActiveWindow(); //若替換對(duì)話框已打開,則使之成為活動(dòng)窗口
        return;
    }
    //創(chuàng)建查找替換對(duì)話框
    pFindReplaceDlg  new CFindReplaceDialog;
    pFindReplaceDlg->Create(FALSE, NULL, NULL, FR_DOWN, this);
}

響應(yīng)函數(shù)OnFindReplace()

為了對(duì)查找替換對(duì)話框進(jìn)行操作,我們還需要添加一個(gè)響應(yīng)函數(shù)OnFindReplace()。具體代碼如下:

LRESULT CFindDlgDemoDlg::OnFindReplace(WPARAM, LPARAM lParam)
{
    //判斷對(duì)話框是否被關(guān)閉
    if (pFindReplaceDlg->IsTerminating())
        pFindReplaceDlg  NULL;
    //獲取當(dāng)前查找/替換對(duì)話框的指針
    CFindReplaceDialog* pDlg  CFindReplaceDialog::GetNotifier(lParam);
    CString m_FindString  pDlg->GetFindString(); //要查找的字符串
    int strlen  m_(); //獲取查找文本的長度
    CString m_ReplaceString  pDlg->GetReplaceString(); //要替換的字符串
    int placelen  m_(); //獲取替換文本的長度
    if (pDlg->FindNext()) //按下了“查找”按鈕,查找下一個(gè)
    {
        pos  m_(m_FindString, pos);
        if (pos  -1) //未找到查找的字符
        {
            AfxMessageBox("搜索完畢,沒有找到指定字符串");
            pos  0;
        }
        else
        {
            m_();
            m_(pos, pos   strlen);
            curpos  pos;
            pos  ;
        }
    }
    if (pDlg->ReplaceCurrent()) //按下了“替換”按鈕
    {
        if (curpos > 0)
        {
            m_();
            m_(curpos, curpos   strlen);
            m_(m_ReplaceString);
            UpdateData(true);
            m_(curpos, curpos   placelen);
            pos  curpos   placelen;
        }
    }
    if (pDlg->ReplaceAll()) //按下了“全部替換”按鈕
    {
        m_(m_FindString, m_ReplaceString); //替換字符串
        UpdateData(false);
    }
    return 0;
}

程序運(yùn)行

通過以上步驟完成后,程序即可運(yùn)行。用戶可以在編輯框中輸入要查找的字符串,并點(diǎn)擊相應(yīng)按鈕進(jìn)行查找或替換操作。同時(shí),程序也提供了“全部替換”功能,方便用戶一鍵替換所有匹配的字符串。

標(biāo)簽: