www.pudn.com > ControlRemote.zip > WndProc.cpp


#define WIN32_LEAN_AND_MEAN 
#define WIN32_EXTRA_LEAN 
#define CLASSNAME "ClientWindow" 
#include  
#include  
#include  
#include "MainWnd.h" 
#include "WndProc.h" 
#include "ServerIP.h" 
#include "Compression.h" 
#include "GridSpacing.h" 
#include "ColorMode.h" 
#include "resource.h" 
 
// 全局主窗口对象 
CMainWnd	*pWindow = new CMainWnd(); 
 
// 全局ServerIP对话框对象 
CServerIP	*pServerIP = new CServerIP(); 
 
// 全局压缩选项对话框 
CCompression	*pCompression = new CCompression(); 
 
// 全局网格空间对话框 
CGridSpacing	*pGridSpacing = new CGridSpacing(); 
 
// 全局颜色模式对话框 
CColorMode		*pColorMode = new CColorMode(); 
 
// windows 入口 
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iShow) 
{ 
	MSG iMsg; 
 
	if (!hPrevInstance && !WinInit(hInstance,iShow)) 
		return FALSE; 
	pWindow->SetInstance(hInstance); 
 
    for(;;) 
	{ 
		if(PeekMessage(&iMsg,NULL,0,0,PM_NOREMOVE)) 
		{ 
			if(!GetMessage(&iMsg,NULL,0,0)) 
				return iMsg.wParam; 
 
			TranslateMessage(&iMsg); 
			DispatchMessage(&iMsg); 
        } 
		else 
			WaitMessage(); 
	} 
} 
 
HWND WinInit(HINSTANCE hInstance, int iShow) 
{ 
	WNDCLASSEX	wc; 
 
	wc.cbSize = sizeof(WNDCLASSEX); 
	wc.style = CS_DBLCLKS|CS_HREDRAW|CS_VREDRAW; 
	// 消息处理函数 
	wc.lpfnWndProc = WndProc;  
	wc.cbClsExtra = 0; 
	wc.cbWndExtra = 0; 
	wc.hInstance = hInstance; 
	wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); 
	wc.hCursor = LoadCursor(NULL,IDI_APPLICATION); 
	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 
	wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); 
	wc.lpszClassName = CLASSNAME; 
	wc.hIconSm = NULL; 
 
	// 创建窗口 
	if (RegisterClassEx(&wc)) 
	{ 
		// 创建主窗口 
		return CreateWindow(CLASSNAME,"Client Socket",WS_OVERLAPPEDWINDOW|WS_VSCROLL|WS_HSCROLL,0,0,640,480,NULL,NULL,hInstance,&iShow); 
	} 
	else 
		return NULL; 
} 
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMsg,WPARAM wParam,LPARAM lParam) 
{ 
	switch (iMsg) 
	{ 
		HANDLE_MSG(hWnd,WM_CREATE,pWindow->OnCreate); 
		HANDLE_MSG(hWnd,WM_DESTROY,pWindow->OnDestroy); 
		HANDLE_MSG(hWnd,WM_SIZE,pWindow->OnSize); 
		HANDLE_MSG(hWnd,WM_PAINT,pWindow->OnPaint); 
		HANDLE_MSG(hWnd,WM_TIMER,pWindow->OnTimer); 
		HANDLE_MSG(hWnd,WM_COMMAND,pWindow->OnCommand); 
		HANDLE_MSG(hWnd,WM_VSCROLL,pWindow->OnVScroll); 
		HANDLE_MSG(hWnd,WM_HSCROLL,pWindow->OnHScroll); 
		HANDLE_MSG(hWnd,WM_LBUTTONDBLCLK,pWindow->OnLButtonDblClk); 
		HANDLE_MSG(hWnd,WM_LBUTTONDOWN,pWindow->OnLButtonDown); 
		HANDLE_MSG(hWnd,WM_LBUTTONUP,pWindow->OnLButtonUp); 
		HANDLE_MSG(hWnd,WM_MBUTTONDBLCLK,pWindow->OnMButtonDblClk); 
		HANDLE_MSG(hWnd,WM_MBUTTONDOWN,pWindow->OnMButtonDown); 
		HANDLE_MSG(hWnd,WM_MBUTTONUP,pWindow->OnMButtonUp); 
		HANDLE_MSG(hWnd,WM_RBUTTONDBLCLK,pWindow->OnRButtonDblClk); 
		HANDLE_MSG(hWnd,WM_RBUTTONDOWN,pWindow->OnRButtonDown); 
		HANDLE_MSG(hWnd,WM_RBUTTONUP,pWindow->OnRButtonUp); 
		HANDLE_MSG(hWnd,WM_MOUSEMOVE,pWindow->OnMouseMove); 
		HANDLE_MSG(hWnd,WM_KEYDOWN,pWindow->OnKeyDown); 
		HANDLE_MSG(hWnd,WM_KEYUP,pWindow->OnKeyUp); 
 
	default: 
			 
		return DefWindowProc(hWnd,iMsg,wParam,lParam); 
	} 
} 
 
LRESULT CALLBACK ServerIPDlgProc(HWND hDlg,UINT iMsg,WPARAM wParam,LPARAM lParam) 
{ 
	switch (iMsg) 
	{ 
		HANDLE_MSG(hDlg,WM_INITDIALOG,pServerIP->OnInitDialog); 
		HANDLE_MSG(hDlg,WM_COMMAND,pServerIP->OnCommand); 
 
	default: 
			 
		return DefWindowProc(hDlg,iMsg,wParam,lParam); 
	} 
} 
 
LRESULT CALLBACK CompressionDlgProc(HWND hDlg,UINT iMsg,WPARAM wParam,LPARAM lParam) 
{ 
	switch (iMsg) 
	{ 
		HANDLE_MSG(hDlg,WM_INITDIALOG,pCompression->OnInitDialog); 
		HANDLE_MSG(hDlg,WM_COMMAND,pCompression->OnCommand); 
 
	default: 
			 
		return DefWindowProc(hDlg,iMsg,wParam,lParam); 
	} 
} 
 
LRESULT CALLBACK GridSpacingDlgProc(HWND hDlg,UINT iMsg,WPARAM wParam,LPARAM lParam) 
{ 
	switch (iMsg) 
	{ 
		HANDLE_MSG(hDlg,WM_INITDIALOG,pGridSpacing->OnInitDialog); 
		HANDLE_MSG(hDlg,WM_COMMAND,pGridSpacing->OnCommand); 
 
	default: 
			 
		return DefWindowProc(hDlg,iMsg,wParam,lParam); 
	} 
} 
 
LRESULT CALLBACK ColorModeDlgProc(HWND hDlg,UINT iMsg,WPARAM wParam,LPARAM lParam) 
{ 
	switch (iMsg) 
	{ 
		HANDLE_MSG(hDlg,WM_INITDIALOG,pColorMode->OnInitDialog); 
		HANDLE_MSG(hDlg,WM_COMMAND,pColorMode->OnCommand); 
 
	default: 
			 
		return DefWindowProc(hDlg,iMsg,wParam,lParam); 
	} 
}