⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findhostsdlg.cpp

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		m_nofm = "";	UpdateData(FALSE);		m_num_items = m_list.GetItemCount();	if (m_num_items < 1)	    return;		m_ok_btn.EnableWindow(FALSE);	m_cancel_btn.EnableWindow(FALSE);		m_progress.SetRange(0, m_num_items);	m_progress.SetStep(1);	m_progress.SetPos(0);		m_bWildcard = true;		m_hFindThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)OnFindBtnThread, this, 0, &dwThreadID);	if (m_hFindThread == NULL)	{	    MessageBox("Unable to create a Find thread", "Error", MB_OK);	}    }}void CFindHostsDlg::OnFindhosts() {    DWORD dwThreadID;    UpdateData();    m_nofm = "";    UpdateData(FALSE);    m_num_items = m_list.GetItemCount();    if (m_num_items < 1)	return;    m_ok_btn.EnableWindow(FALSE);    m_cancel_btn.EnableWindow(FALSE);    m_progress.SetRange(0, m_num_items);    m_progress.SetStep(1);    m_progress.SetPos(0);    m_bWildcard = false;    m_hFindThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)OnFindBtnThread, this, 0, &dwThreadID);    if (m_hFindThread == NULL)    {	MessageBox("Unable to create a Find thread", "Error", MB_OK);    }}void CFindHostsDlg::OnLoadlist() {    CFileDialog f(	TRUE, "*.txt", m_filename, 	OFN_HIDEREADONLY | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST,	"Text (*.txt)|*.txt|All files (*.*)|*.*||"	);    if (f.DoModal() == IDOK)    {	POSITION p;	QVS_Container qvs;	CStdioFile fin;	CString line;	p = f.GetStartPosition();	m_filename = f.GetNextPathName(p);		if (fin.Open(m_filename, CFile::modeRead))	{	    while (fin.ReadString(line))	    {		qvs.decode_string((char*)(LPCTSTR)line);	    }	    fin.Close();	    char host[100];	    if (qvs.first(host, 100))	    {		InsertHost(host);		while (qvs.next(host, 100))		{		    InsertHost(host);		}	    }	    qvs.output_encoded_string(m_encoded_hosts.GetBuffer(8192), 8192);	    m_encoded_hosts.ReleaseBuffer();	    UpdateData(FALSE);	}	else	{	    MessageBox(m_filename, "Unable to open file");	}    }}void CFindHostsDlg::OnSavelist() {    CFileDialog f(	FALSE, "*.txt", m_filename, 	OFN_HIDEREADONLY | OFN_EXPLORER | OFN_PATHMUSTEXIST,	"Text (*.txt)|*.txt|All files (*.*)|*.*||"	);    if (f.DoModal() == IDOK)    {	POSITION p;	QVS_Container qvs;	CStdioFile fout;	CString str;	p = f.GetStartPosition();	m_filename = f.GetNextPathName(p);	if (fout.Open(m_filename, CFile::modeWrite | CFile::modeCreate))	{	    qvs.decode_string((char*)(LPCTSTR)m_encoded_hosts);	    if (qvs.first(str.GetBuffer(100), 100))	    {		str.ReleaseBuffer();		fout.WriteString(str + "\n");		while (qvs.next(str.GetBuffer(100), 100))		{		    str.ReleaseBuffer();		    fout.WriteString(str + "\n");		}	    }	    fout.Close();	}	else	{	    MessageBox(m_filename, "Unable to open file");	}    }}BOOL CFindHostsDlg::OnInitDialog() {    CDialog::OnInitDialog();        ParseRegistry();        r_domain.SetInitialPosition(m_encoded_hosts_edit.m_hWnd, RSR_STRETCH_RIGHT);    r_hosts.SetInitialPosition(m_list.m_hWnd, RSR_STRETCH);    r_ok.SetInitialPosition(m_ok_btn.m_hWnd, RSR_MOVE);    r_cancel.SetInitialPosition(m_cancel_btn.m_hWnd, RSR_MOVE);    r_progress.SetInitialPosition(m_progress.m_hWnd, RSR_MOVE);    r_nofm.SetInitialPosition(m_nofm_static.m_hWnd, RSR_MOVE);        m_pImageList = new CImageList();    m_pImageList->Create(16, 16, ILC_COLOR8 | ILC_MASK, 2, 1);    m_pImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON_YES));    m_pImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON_NO));    m_list.SetImageList(m_pImageList, LVSIL_STATE);    Refresh();    UpdateSelectedHosts();        m_bInitDialogCalled = true;    return TRUE;  // return TRUE unless you set the focus to a control}void CFindHostsDlg::OnSize(UINT nType, int cx, int cy) {    CDialog::OnSize(nType, cx, cy);        r_domain.Resize(cx, cy);    r_hosts.Resize(cx, cy);    r_ok.Resize(cx, cy);    r_cancel.Resize(cx, cy);    r_progress.Resize(cx, cy);    r_nofm.Resize(cx, cy);        if (m_bInitDialogCalled)	m_list.Arrange(LVA_DEFAULT );}LRESULT CFindHostsDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) {    switch (message)    {    case WM_USER + 1:	if (lParam)	{	    m_list.SetItemState((int)wParam, LVIS_SELECTED, LVIS_SELECTED);	}	else	{	    if ((int)wParam != -1)	    {		m_list.SetItemState((int)wParam, 0, LVIS_SELECTED);		m_list.SetItemState((int)wParam, INDEXTOSTATEIMAGEMASK(0), LVIS_STATEIMAGEMASK);	    }	    m_num_threads--;	    if (m_num_threads == 0)	    {		m_ok_btn.EnableWindow();		m_cancel_btn.EnableWindow();		UpdateSelectedHosts();	    }	    m_progress.StepIt();	    m_nofm.Format("%d of %d", m_progress.GetPos(), m_num_items);	    UpdateData(FALSE);	}	break;    case WM_USER + 2:	m_list.SetItemState((int)wParam, LVIS_SELECTED, LVIS_SELECTED);	m_list.SetItemState((int)wParam, INDEXTOSTATEIMAGEMASK(1), LVIS_STATEIMAGEMASK);	m_num_threads--;	if (m_num_threads == 0)	{	    m_ok_btn.EnableWindow();	    m_cancel_btn.EnableWindow();	    UpdateSelectedHosts();	}	m_progress.StepIt();	m_nofm.Format("%d of %d", m_progress.GetPos(), m_num_items);	UpdateData(FALSE);	break;    }        return CDialog::WindowProc(message, wParam, lParam);}void CFindHostsDlg::OnVerify() {    char host[100];    SOCKET sock;    int index;    char str[100];    HCURSOR hOldCursor;    POSITION pos;        UpdateData();        m_nofm = "";    UpdateData(FALSE);    m_num_threads = m_list.GetSelectedCount();    if (m_num_threads == 0)	return;    pos = m_list.GetFirstSelectedItemPosition();    if (pos == NULL)    {	return;    }    hOldCursor = SetCursor( LoadCursor(NULL, IDC_WAIT) );    m_ok_btn.EnableWindow(FALSE);    m_cancel_btn.EnableWindow(FALSE);    m_num_items = m_list.GetSelectedCount();    m_progress.SetRange(0, m_num_items);    m_progress.SetPos(0);    m_progress.SetStep(1);    m_nofm.Format("0 of %d", m_num_items);    UpdateData(FALSE);    if (m_bNeedPassword)    {	CPwdDialog dlg;	dlg.DoModal();	if (dlg.m_bUseDefault)	    strcpy(m_pszPhrase, MPD_DEFAULT_PASSPHRASE);	else	    strcpy(m_pszPhrase, dlg.m_password);    }    while (pos)    {	index = m_list.GetNextSelectedItem(pos);	if (m_list.GetItemText(index, 0, host, 100) == 0)	{	    SetCursor(hOldCursor);	    MessageBox("GetItemText failed", "Error", MB_OK);	    return;	}	if (!ConnectToHost(host, m_nPort, m_pszPhrase, &sock))	{	    easy_closesocket(sock);	    ::PostMessage(m_hWnd, WM_USER+1, index, FALSE);	    continue;	}		if (WriteString(sock, "version") == SOCKET_ERROR)	{	    easy_closesocket(sock);	    ::PostMessage(m_hWnd, WM_USER+1, index, FALSE);	    continue;	}	if (!ReadString(sock, str))	{	    easy_closesocket(sock);	    ::PostMessage(m_hWnd, WM_USER+1, index, FALSE);	    continue;	}	WriteString(sock, "done");	easy_closesocket(sock);		::PostMessage(m_hWnd, WM_USER+2, index, FALSE);    }    SetCursor(hOldCursor);}void CFindHostsDlg::UpdateSelectedHosts(){    QVS_Container qvs;    POSITION pos;    char host[100];    int index;    UpdateData();    pos = m_list.GetFirstSelectedItemPosition();    while (pos)    {	index = m_list.GetNextSelectedItem(pos);	if (m_list.GetItemText(index, 0, host, 100) == 0)	{	    MessageBox("GetItemText failed", "Error", MB_OK);	    return;	}	qvs.encode_string(host);    }    qvs.output_encoded_string(m_encoded_hosts.GetBuffer(8192), 8192);    m_encoded_hosts.ReleaseBuffer();    UpdateData(FALSE);}void CFindHostsDlg::OnClickDomainHostList(NMHDR* pNMHDR, LRESULT* pResult) {    UpdateSelectedHosts();    *pResult = 0;}void CFindHostsDlg::OnConnectionOptions() {    CMPDConnectionOptionsDlg dlg;    dlg.m_bFastConnect = m_bFastConnect;    dlg.m_phrase = m_pszPhrase;    dlg.m_port = m_nPort;    if (dlg.DoModal() == IDOK)    {	if (dlg.m_bPhrase)	{	    strcpy(m_pszPhrase, dlg.m_phrase);	}	else	{	    strcpy(m_pszPhrase, MPD_DEFAULT_PASSPHRASE);	}	m_bNeedPassword = false;	m_bUseDefault = false;		if (dlg.m_bPort)	{	    m_nPort = dlg.m_port;	}	else	{	    m_nPort = MPD_DEFAULT_PORT;	}	m_bFastConnect = (dlg.m_bFastConnect == TRUE);    }}void CFindHostsDlg::InsertHost(char *host){    LVFINDINFO info;    int i;    char pszHost[100];    if (host == NULL || *host == '\0')	return;    strncpy(pszHost, host, 100);    for (i=0; i<100, pszHost[i] != '\0'; i++)	pszHost[i] = toupper(pszHost[i]);    info.flags = LVFI_STRING;    info.psz = pszHost;        if (m_list.FindItem(&info) == -1)    {	m_list.InsertItem(0, pszHost, 0);    }}void CFindHostsDlg::SelectHost(char *host){    LVFINDINFO info;    int i;    char pszHost[100];    if (host == NULL || *host == '\0')	return;    strncpy(pszHost, host, 100);    for (i=0; i<100, pszHost[i] != '\0'; i++)	pszHost[i] = toupper(pszHost[i]);    info.flags = LVFI_STRING;    info.psz = pszHost;        i = m_list.FindItem(&info);    if (i != -1)    {	m_list.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -