www.pudn.com > mischat.rar > MainFrm.cpp


// MainFrm.cpp : implementation of the CMainFrame class 
// 
 
#include "stdafx.h" 
#include "mischat.h" 
#include "mischatDoc.h" 
#include "MainFrm.h" 
#include "mischatView.h" 
#include "DrawTypeId.h" 
#include ".\mainfrm.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 
 
extern CmischatDoc* pDoc; 
#define WM_REFRESHCAPTIONBAR WM_USER + 0x7FFF 
#define WM_APPENDOUTPUTBARINFO WM_USER + 0x7FFE 
#define WM_REFRESHIPBAR WM_USER + 0x7FFD 
#define WM_PANEGROGRESSBAR WM_USER + 0x7FFC 
 
// CMainFrame 
 
IMPLEMENT_DYNCREATE(CMainFrame, CBCGPFrameWnd) 
 
BEGIN_MESSAGE_MAP(CMainFrame, CBCGPFrameWnd) 
	ON_WM_CREATE() 
	ON_REGISTERED_MESSAGE(BCGM_TOOLBARMENU, OnToolbarContextMenu) 
	ON_COMMAND(ID_VIEW_OUTPUT, OnViewOutput) 
	ON_UPDATE_COMMAND_UI(ID_VIEW_OUTPUT, OnUpdateViewOutput) 
	ON_COMMAND(ID_ONLINEIP_BAR, OnLineIPBar) 
	ON_UPDATE_COMMAND_UI(ID_ONLINEIP_BAR, OnUpdateOnLineIPBar) 
	ON_COMMAND(ID_VIEW_INPUT, OnViewInput) 
	ON_UPDATE_COMMAND_UI(ID_VIEW_INPUT, OnUpdateViewInput) 
	ON_COMMAND(ID_VIEW_CAPTIONBAR, OnViewCaptionBar) 
	ON_UPDATE_COMMAND_UI(ID_VIEW_CAPTIONBAR, OnUpdateViewCaptionBar) 
	ON_COMMAND(ID_TOOLBOX, OnToolBox) 
	ON_COMMAND(ID_VIEW_TOOLBOX, OnViewToolbox) 
	ON_UPDATE_COMMAND_UI(ID_VIEW_TOOLBOX, OnUpdateViewToolbox) 
	ON_COMMAND(ID_VIEW_PROPERTIES, OnViewProperties) 
	ON_UPDATE_COMMAND_UI(ID_VIEW_PROPERTIES, OnUpdateViewProperties) 
	ON_COMMAND(IDM_SERVERCONFIG, OnServerConfig) 
	ON_COMMAND(IDM_CLIENTCONFIG, OnClientConfig) 
	ON_WM_TIMER() 
	ON_COMMAND(ID_VIEW_FULLSCREEN, OnViewFullscreen) 
	ON_COMMAND(ID_HELP_USING, OnHelpUsing) 
	ON_MESSAGE(WM_REFRESHCAPTIONBAR, OnRefreshCaptionBar) 
	ON_MESSAGE(WM_APPENDOUTPUTBARINFO, OnAppendOutputBarInfo) 
	ON_MESSAGE(WM_REFRESHIPBAR, OnRefreshIPBar) 
	ON_MESSAGE(WM_PANEGROGRESSBAR, OnPaneProgressBar) 
END_MESSAGE_MAP() 
 
static UINT indicators[] = 
{ 
	ID_SEPARATOR,           // status line indicator 
	ID_PROGRESS, 
	ID_INDICATOR_CAPS, 
	ID_INDICATOR_NUM, 
	ID_INDICATOR_SCRL, 
}; 
 
 
// CMainFrame construction/destruction 
CMainFrame* pMainWnd; 
CMainFrame::CMainFrame() 
{ 
	// TODO: add member initialization code here 
	flashWndCount=5; 
	m_nTimer=-1; 
	pMainWnd=this; 
} 
 
CMainFrame::~CMainFrame() 
{ 
} 
 
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
	if (CBCGPFrameWnd::OnCreate(lpCreateStruct) == -1) 
		return -1; 
 
	// enable Office 2003 look: 
	CBCGPVisualManager::SetDefaultManager (RUNTIME_CLASS (CBCGPVisualManager2003)); 
	 
	if (!m_wndMenuBar.Create (this)) 
	{ 
		TRACE0("Failed to create menubar\n"); 
		return -1;      // fail to create 
	} 
 
	m_wndMenuBar.SetBarStyle(m_wndMenuBar.GetBarStyle() | CBRS_SIZE_DYNAMIC); 
 
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP 
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || 
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) 
	{ 
		TRACE0("Failed to create toolbar\n"); 
		return -1;      // fail to create 
	} 
	m_wndToolBar.EnableCustomizeButton(TRUE,IDR_CUSTOMIZE_TOOLBAR,_T("定制")); 
 
	if (!m_wndStatusBar.Create(this) || 
		!m_wndStatusBar.SetIndicators(indicators, 
		  sizeof(indicators)/sizeof(UINT))) 
	{ 
		TRACE0("Failed to create status bar\n"); 
		return -1;      // fail to create 
	} 
 
	m_wndStatusBar.EnablePaneProgressBar (1,100,TRUE); 
 
	if (!m_wndOutput.Create (_T("接收信息"), this, CSize (150, 150), 
		TRUE /* Has gripper */, ID_VIEW_OUTPUT, 
		WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) 
	{ 
		TRACE0("Failed to create output bar\n"); 
		return -1;      // fail to create 
	} 
	HICON hOutputBarIcon = (HICON) ::LoadImage (::AfxGetResourceHandle (),  
				MAKEINTRESOURCE (IDI_OUTPUT_BAR), 
				IMAGE_ICON, ::GetSystemMetrics (SM_CXSMICON), ::GetSystemMetrics (SM_CYSMICON), 0); 
	m_wndOutput.SetIcon (hOutputBarIcon, FALSE); 
 
	if (!m_wndInput.Create (_T("发送信息"), this, CSize (150, 150), 
		TRUE /* Has gripper */, ID_VIEW_INPUT, 
		WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) 
	{ 
		TRACE0("Failed to create input bar\n"); 
		return -1;      // fail to create 
	} 
	HICON hInputBarIcon = (HICON) ::LoadImage (::AfxGetResourceHandle (),  
				MAKEINTRESOURCE (IDI_INPUT_BAR), 
				IMAGE_ICON, ::GetSystemMetrics (SM_CXSMICON), ::GetSystemMetrics (SM_CYSMICON), 0); 
	m_wndInput.SetIcon (hInputBarIcon, FALSE); 
 
	if (!m_wndToolBoxBar.Create (_T("会商工具箱"), this, CRect (0, 0, 100, 100), 
		TRUE,  
		ID_TOOLBOX, 
		WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT /*| CBRS_FLOAT_MULTI*/)) 
	{ 
		TRACE0("Failed to create ToolBox Bar\n"); 
		return FALSE;		// fail to create 
	} 
	 
	HICON hToolBoxBarIcon = (HICON) ::LoadImage (::AfxGetResourceHandle (),  
				MAKEINTRESOURCE (IDI_TOOLBOX_BAR), 
				IMAGE_ICON, ::GetSystemMetrics (SM_CXSMICON), ::GetSystemMetrics (SM_CYSMICON), 0); 
	m_wndToolBoxBar.SetIcon (hToolBoxBarIcon, FALSE); 
 
	CString strMainToolbarTitle; 
	strMainToolbarTitle.LoadString (IDS_MAIN_TOOLBAR); 
	m_wndToolBar.SetWindowText (strMainToolbarTitle); 
 
	if (!m_wndPropertiesBar.Create (_T("参数设置"), this, CRect (0, 0, 200, 200), 
		TRUE,  
		ID_VIEW_PROPERTIES, 
		WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI)) 
	{ 
		TRACE0("Failed to create Properties Bar\n"); 
		return FALSE;		// fail to create 
	} 
	 
	HICON hPropertiesBarIcon = (HICON) ::LoadImage (::AfxGetResourceHandle (),  
				MAKEINTRESOURCE (IDI_PROPERTIES_BAR), 
				IMAGE_ICON, ::GetSystemMetrics (SM_CXSMICON), ::GetSystemMetrics (SM_CYSMICON), 0); 
	m_wndPropertiesBar.SetIcon (hPropertiesBarIcon, FALSE); 
 
	if (!m_wndOnlineIPBar.Create (_T("在线用户"), this, CSize (150, 150), 
		TRUE /* Has gripper */, ID_ONLINEIP_BAR, 
		WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) 
	{ 
		TRACE0("Failed to create onlineip bar\n"); 
		return -1;      // fail to create 
	} 
	HICON hOnlineIPIcon = (HICON) ::LoadImage (::AfxGetResourceHandle (),  
				MAKEINTRESOURCE (IDI_ONLINEIP_BAR), 
				IMAGE_ICON, ::GetSystemMetrics (SM_CXSMICON), ::GetSystemMetrics (SM_CYSMICON), 0); 
	m_wndOnlineIPBar.SetIcon (hOnlineIPIcon, FALSE); 
 
	// TODO: Delete these three lines if you don't want the toolbar to be dockable 
	m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY); 
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); 
	m_wndOutput.EnableDocking(CBRS_ALIGN_ANY); 
	m_wndInput.EnableDocking(CBRS_ALIGN_ANY); 
	m_wndOnlineIPBar.EnableDocking(CBRS_ALIGN_ANY); 
	m_wndToolBoxBar.EnableDocking(CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT); 
	m_wndPropertiesBar.EnableDocking(CBRS_ALIGN_ANY); 
 
	EnableDocking(CBRS_ALIGN_ANY); 
 
	if (!m_wndCaptionBar.Create (WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, this, 
		ID_VIEW_CAPTIONBAR, -1)) 
	{ 
		TRACE0("Failed to create caption bar\n"); 
		return -1;      // fail to create 
	} 
 
	m_wndCaptionBar.SetFlatBorder (); 
	m_wndCaptionBar.SetText (_T("远程会商 1.3   解放军理工大学气象学院   2006/07/10   版权所有")); 
	m_bmpCaption.LoadBitmap (IDB_CAPTION); 
	m_wndCaptionBar.SetBitmap (m_bmpCaption, RGB (255, 0, 255)); 
 
	EnableAutoHideBars(CBRS_ALIGN_ANY); 
	DockControlBar(&m_wndMenuBar); 
	DockControlBar(&m_wndToolBar); 
	DockControlBar(&m_wndOutput); 
	DockControlBar(&m_wndInput); 
	DockControlBar(&m_wndOnlineIPBar); 
	DockControlBar(&m_wndToolBoxBar); 
	DockControlBar(&m_wndPropertiesBar); 
 
	SetWindowText(_T("远程会商")); 
	EnableFullScreenMode (ID_VIEW_FULLSCREEN); 
	return 0; 
} 
 
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 
{ 
	if( !CBCGPFrameWnd::PreCreateWindow(cs) ) 
		return FALSE; 
	// TODO: Modify the Window class or styles here by modifying 
	//  the CREATESTRUCT cs 
	cs.style &= ~FWS_ADDTOTITLE; 
	return TRUE; 
} 
 
 
// CMainFrame diagnostics 
 
#ifdef _DEBUG 
void CMainFrame::AssertValid() const 
{ 
	CBCGPFrameWnd::AssertValid(); 
} 
 
void CMainFrame::Dump(CDumpContext& dc) const 
{ 
	CBCGPFrameWnd::Dump(dc); 
} 
 
#endif //_DEBUG 
 
 
// CMainFrame message handlers 
 
 
LRESULT CMainFrame::OnToolbarContextMenu(WPARAM,LPARAM lp) 
{ 
	CPoint point (BCG_GET_X_LPARAM(lp), BCG_GET_Y_LPARAM(lp)); 
 
	CMenu menu; 
	VERIFY(menu.LoadMenu (IDR_POPUP_TOOLBAR)); 
 
	CMenu* pPopup = menu.GetSubMenu(0); 
	ASSERT(pPopup != NULL); 
 
	CBCGPPopupMenu* pPopupMenu = new CBCGPPopupMenu; 
	pPopupMenu->Create (this, point.x, point.y, pPopup->Detach ()); 
 
	return 0; 
} 
 
BOOL CMainFrame::OnShowPopupMenu (CBCGPPopupMenu* pMenuPopup) 
{ 
	//--------------------------------------------------------- 
	// Replace ID_VIEW_TOOLBARS menu item to the toolbars list: 
	//--------------------------------------------------------- 
    CBCGPFrameWnd::OnShowPopupMenu (pMenuPopup); 
 
    if (pMenuPopup != NULL && 
		pMenuPopup->GetMenuBar ()->CommandToIndex (ID_VIEW_TOOLBARS) >= 0) 
    { 
		if (CBCGPToolBar::IsCustomizeMode ()) 
		{ 
			//---------------------------------------------------- 
			// Don't show toolbars list in the cuztomization mode! 
			//---------------------------------------------------- 
			return FALSE; 
		} 
 
		pMenuPopup->RemoveAllItems (); 
 
		CMenu menu; 
		VERIFY(menu.LoadMenu (IDR_POPUP_TOOLBAR)); 
 
		CMenu* pPopup = menu.GetSubMenu(0); 
		ASSERT(pPopup != NULL); 
 
		pMenuPopup->GetMenuBar ()->ImportFromMenu (*pPopup, TRUE); 
    } 
	return TRUE; 
} 
 
void CMainFrame::OnViewOutput()  
{ 
	ShowControlBar (&m_wndOutput, 
					!(m_wndOutput.IsVisible ()), 
					FALSE, TRUE); 
	RecalcLayout (); 
} 
 
void CMainFrame::OnUpdateViewOutput(CCmdUI* pCmdUI)  
{ 
	pCmdUI->SetCheck (m_wndOutput.IsVisible ()); 
} 
 
void CMainFrame::OnLineIPBar()  
{ 
	ShowControlBar (&m_wndOnlineIPBar, 
					!(m_wndOnlineIPBar.IsVisible ()), 
					FALSE, TRUE); 
	RecalcLayout (); 
} 
 
void CMainFrame::OnUpdateOnLineIPBar(CCmdUI* pCmdUI)  
{ 
	pCmdUI->SetCheck (m_wndOnlineIPBar.IsVisible ()); 
} 
 
void CMainFrame::OnViewInput()  
{ 
	ShowControlBar (&m_wndInput, 
					!(m_wndInput.IsVisible ()), 
					FALSE, TRUE); 
	RecalcLayout (); 
} 
 
void CMainFrame::OnUpdateViewInput(CCmdUI* pCmdUI)  
{ 
	pCmdUI->SetCheck (m_wndInput.IsVisible ()); 
} 
 
void CMainFrame::OnViewToolbox()  
{ 
	ShowControlBar (&m_wndToolBoxBar, 
					!(m_wndToolBoxBar.IsVisible ()), 
					FALSE, TRUE); 
	RecalcLayout (); 
} 
 
void CMainFrame::OnUpdateViewToolbox(CCmdUI* pCmdUI)  
{ 
	pCmdUI->SetCheck (m_wndToolBoxBar.IsVisible ()); 
} 
 
void CMainFrame::OnViewCaptionBar()  
{ 
	ShowControlBar (&m_wndCaptionBar, 
					!(m_wndCaptionBar.IsVisible ()), 
					FALSE, TRUE); 
	RecalcLayout (); 
} 
 
void CMainFrame::OnUpdateViewCaptionBar(CCmdUI* pCmdUI)  
{ 
	pCmdUI->SetCheck (m_wndCaptionBar.IsVisible ()); 
} 
 
void CMainFrame::OnToolBox()  
{ 
	//指针 文本工具 清除工具 铅笔工具 矩形选择 画笔工具 喷枪工具 填充工具 线条工具 空心矩形  
	//0    1        2        3        4        5        6        7        8        9         
	//实心矩形 矩形工具 空心圆角矩形 实心圆角矩形 圆角矩形工具 空心椭圆 实心椭圆 椭圆工具 
	//10       11       12           13           14           15       16       17 
	int page=m_wndToolBoxBar.GetActivePage (); 
	int item=m_wndToolBoxBar.GetLastClickedTool (page); 
	if(page==0) 
	{ 
		switch(item) 
		{ 
		case 0: 
			pDoc->flag=NOTHING; 
			break; 
		case 1: 
			pDoc->flag=DRAWTEXT; 
			break; 
		case 2: 
			pDoc->flag=CLEAR; 
			pDoc->pView->clearAll (); 
 
			if(pDoc->server.isStart()) 
			pDoc->SendMsgToAll (NULL); 
			if(pDoc->client.isStart()) 
			pDoc->SendMsg(NULL); 
			break; 
		case 3: 
			pDoc->flag=CURVE; 
			break; 
		case 4: 
			pDoc->flag=RECTSELECT; 
			break; 
		case 5: 
			pDoc->flag=PAINTBRUSH; 
			break; 
		case 6: 
			pDoc->flag=SPRAY; 
			break; 
		case 7: 
			pDoc->flag=FILL; 
			break; 
		case 8: 
			pDoc->flag=LINE; 
			break; 
		case 9: 
			pDoc->flag=BLANKRECTANGLE; 
			break; 
		case 10: 
			pDoc->flag=SOLIDRECTANGLE; 
			break; 
		case 11: 
			pDoc->flag=RECTANGLE; 
			break; 
		case 12: 
			pDoc->flag=BLANKROUNDRECT; 
			break; 
		case 13: 
			pDoc->flag=SOLIDROUNDRECT; 
			break; 
		case 14: 
			pDoc->flag=ROUNDRECT; 
			break; 
		case 15: 
			pDoc->flag=BLANKELLIPSE; 
			break; 
		case 16: 
			pDoc->flag=SOLIDELLIPSE; 
			break; 
		case 17: 
			pDoc->flag=ELLIPSE; 
			break; 
		case 18:			 
			{ 
				CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST,pDoc->strImageFilter); 
				if(dlg.DoModal() ==IDOK) 
				{			     
					pDoc->pView->Load (dlg.GetPathName ()); 
				} 
			} 
			break; 
		case 19: 
			pDoc->OpenWhiteBroad (); 
			break; 
		case 20: 
			pDoc->SaveWhiteBroad (); 
			break; 
		case 21: 
			if(pDoc->server.isStart()) 
			{ 
				pDoc->UpdateAllDrawData(); 
				break; 
			} 
			if(pDoc->client.isStart ()) 
				::MessageBox(pMainWnd->GetSafeHwnd(),_T("客户机方式无此功能"),_T("信息"),MB_OK); 
			break; 
		} 
	} 
	else 
	{ 
 
	} 
} 
 
void CMainFrame::OnViewProperties()  
{ 
	// demonstartes how to make bar active in autohide mode and inactive when non-tabbed 
	BOOL bAutoHideMode = m_wndPropertiesBar.IsAutoHideMode (); 
	BOOL bTabbed = m_wndPropertiesBar.IsTabbed (); 
 
	ShowControlBar (&m_wndPropertiesBar, 
					!m_wndPropertiesBar.IsVisible (), 
					FALSE, bAutoHideMode || !bTabbed); 
	RecalcLayout (); 
} 
 
void CMainFrame::OnUpdateViewProperties(CCmdUI* pCmdUI)  
{ 
	pCmdUI->SetCheck (m_wndPropertiesBar.IsVisible ());	 
} 
 
BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)  
{ 
	UINT uiCmd = LOWORD (wParam); 
	switch (uiCmd) 
	{ 
	case ID_EDIT_PASTE: 
		::SendMessage (::GetFocus (), WM_PASTE, 0, 0); 
		return TRUE; 
 
	case ID_EDIT_COPY: 
		::SendMessage (::GetFocus (), WM_COPY, 0, 0); 
		return TRUE; 
 
	case ID_EDIT_CUT: 
		::SendMessage (::GetFocus (), WM_CUT, 0, 0); 
		return TRUE; 
	} 
	return CWnd::OnCommand(wParam, lParam); 
} 
void CMainFrame::OnServerConfig() 
{ 
	// TODO: 在此添加命令处理程序代码 
	if(!m_wndPropertiesBar.IsVisible ()){ 
		ShowControlBar (&m_wndPropertiesBar,TRUE,FALSE, TRUE); 
		RecalcLayout (); 
	} 
	m_wndPropertiesBar.SetFocus (); 
	//if(m_nTimer==-1) m_nTimer=SetTimer(1, 500, NULL); 
} 
 
void CMainFrame::OnClientConfig() 
{ 
	// TODO: 在此添加命令处理程序代码 
	if(!m_wndPropertiesBar.IsVisible ()){ 
		ShowControlBar (&m_wndPropertiesBar,TRUE,FALSE, TRUE); 
		RecalcLayout (); 
	} 
	m_wndPropertiesBar.SetFocus (); 
	//if(m_nTimer==-1) m_nTimer=SetTimer(1, 500, NULL); 
} 
 
void CMainFrame::FillOutputBarInfo() 
{ 
	CString str,strInfo; 
	m_wndOutput.m_wndList.DeleteAllItems (); 
	//pDoc->csOutputInfo.Lock (); 
	for(int i=0;ioutputInfo.GetUpperBound();i++) 
	{ 
		strInfo=pDoc->outputInfo.GetAt (i); 
		if(!strInfo.IsEmpty ()){ 
			str.Format ("%d",i+1); 
			m_wndOutput.m_wndList.InsertItem(i,str,0); 
			m_wndOutput.m_wndList.SetItemText(i,1,strInfo); 
		}else break; 
	} 
	pDoc->outInfoIndex =i; 
	//pDoc->csOutputInfo.Unlock(); 
} 
 
 
void CMainFrame::OnTimer(UINT nIDEvent) 
{ 
	// TODO: 在此添加消息处理程序代码和/或调用默认值 
	m_wndPropertiesBar.FlashWindow (TRUE); 
	flashWndCount--; 
	if(flashWndCount==0){ 
		KillTimer (m_nTimer); 
		flashWndCount=5; 
		m_nTimer=-1; 
	} 
	CBCGPFrameWnd::OnTimer(nIDEvent); 
} 
 
void CMainFrame::RefreshPropList() 
{ 
	m_wndPropertiesBar.RefreshPropList (); 
} 
void CMainFrame::OnViewFullscreen() 
{ 
	// TODO: 在此添加命令处理程序代码 
	ShowFullScreen (); 
} 
 
void CMainFrame::OnHelpUsing() 
{ 
	// TODO: 在此添加命令处理程序代码 
	ShellExecute(NULL,"open","help.chm",NULL,NULL,SW_SHOWNORMAL); 
} 
 
LRESULT CMainFrame::OnRefreshCaptionBar(WPARAM wparm, LPARAM lparm) 
{ 
	CString strCaption; 
	LPTSTR p=(LPTSTR)lparm; 
	strCaption.Format ("远程会商 1.3   解放军理工大学气象学院   2006/07/10   版权所有   当前状态: %s!",p); 
	m_wndCaptionBar.SetText (strCaption); 
	m_wndCaptionBar.Invalidate (); 
	return 1L; 
} 
 
LRESULT CMainFrame::OnAppendOutputBarInfo(WPARAM wparm, LPARAM lparm) 
{ 
	LPTSTR p=(LPTSTR)lparm; 
	CString str; 
	int count=m_wndOutput.m_wndList.GetItemCount (); 
	str.Format ("%d",count+1); 
	m_wndOutput.m_wndList.InsertItem(count,str,0); 
	m_wndOutput.m_wndList.SetItemText(count,1,p); 
	return 1L; 
} 
 
LRESULT CMainFrame::OnRefreshIPBar(WPARAM wparm, LPARAM lparm) 
{ 
	m_wndOnlineIPBar.OnLineIPUser(); 
	return 1L; 
} 
 
LRESULT CMainFrame::OnPaneProgressBar(WPARAM wparm, LPARAM lparm) 
{ 
	m_wndStatusBar.SetPaneProgress (1,(long)lparm); 
	return 1L; 
}