Mfc 建立窗口线程

之前一直都是在学习C,但是没用MFC写过东西。所以这个算是MFC的一个处女作把。

今天硬着头皮写了个爆破工具,但是界面(edit控制)在显示的时候一下就被卡住了。

于是到处问人,后来有个不错的朋友帮我解决了,在此谢谢他。

没增加线程之前,老是会出现这样的问题,但是程序并不是死掉了,而是控件显示那儿给卡到了。

让哥们给加了一个线程函数,如下:

void CTestmfcDlg::OnBnClickedButton1()
{
	GetDlgItemText(IDC_EDIT2,url);
	GetDlgItemText(IDC_EDIT4,Urlpath);
	AfxBeginThread(ThreadProc,this); //线程启用
}

UINT __cdecl CTestmfcDlg::ThreadProc(LPVOID lpParameter) //线程函数,防止界面卡住
{
	CTestmfcDlg *pTestDlg = (CTestmfcDlg*)lpParameter;
	wchar_t Passfile[MAX_PATH] = {0};
	wchar_t Target[MAX_PATH] = {0};
	wchar_t targetpath[MAX_PATH] = {0};

	if (lstrlen(pTestDlg->url) == 0)
	{
		//AfxMessageBox(L"Your Not Enter target url");
		pTestDlg->printf_r(L"Please enter the target site.");
	}

	if (lstrlen(pTestDlg->Urlpath) == 0)
	{
		//AfxMessageBox();
		pTestDlg->printf_r(L"Please enter the site path");
	}

	lstrcpy(Target,pTestDlg->url);
	lstrcpy(targetpath,pTestDlg->Urlpath);
	lstrcpy(Passfile,pTestDlg->FileName);
	pTestDlg->Crack(Target,targetpath,Passfile);
	return TRUE;
}

  

在此做个记录,以后碰到这个问题就有办法解决了。

原文地址:https://www.cnblogs.com/killbit/p/4857529.html