www.pudn.com > StatuBar.zip > WinMain.cpp


/*»ÆÎ°Ç¯ 2005.8*/ 
#include  
#include  
#include "resource.h" 
 
#define ID_STATUSBAR 1 
 
HINSTANCE hInst; 
 
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam); 
INT_PTR CALLBACK DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam); 
 
int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd ) 
{ 
	HICON hIcon; 
	HWND hWnd; 
	MSG msg; 
	HMENU hMenu1; 
	WCHAR szClaName[]=TEXT("class1"); 
	hInst=hInstance; 
	hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1)); 
	hMenu1=LoadMenu(hInstance,MAKEINTRESOURCE(IDR_MENU1)); 
 
	WNDCLASSEX stWndCls; 
	stWndCls.cbClsExtra=0; 
	stWndCls.cbSize=sizeof(stWndCls); 
	stWndCls.cbWndExtra=0; 
	stWndCls.hbrBackground=(HBRUSH)GetStockObject(LTGRAY_BRUSH); 
	stWndCls.hCursor=LoadCursor(NULL,IDC_ARROW); 
	stWndCls.hIcon=hIcon; 
	stWndCls.hIconSm=hIcon; 
	stWndCls.hInstance=hInstance; 
	stWndCls.lpfnWndProc=WndProc; 
	stWndCls.lpszClassName=szClaName; 
	stWndCls.lpszMenuName=NULL; 
	stWndCls.style=CS_VREDRAW|CS_HREDRAW; 
	RegisterClassEx(&stWndCls); 
 
	hWnd=CreateWindowEx(0,szClaName,TEXT("Main Window"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,600,400,NULL,hMenu1,hInstance,NULL); 
	ShowWindow(hWnd,SW_NORMAL); 
	UpdateWindow(hWnd); 
 
	while (GetMessage(&msg,NULL,0,0)) 
	{ 
		TranslateMessage(&msg); 
		DispatchMessage(&msg); 
	} 
} 
 
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) 
{ 
	int wmID; 
	static HWND hStatusBar; 
	int iParts[]={60,140,172,-1}; 
	UINT iMenuHelp[]={0,IDM_MENUHELP,0,0}; 
 
	switch (uMsg) 
	{ 
	case WM_COMMAND: 
		wmID=LOWORD(wParam); 
		switch (wmID) 
		{ 
		case ID_EXIT: 
			SendMessage(hWnd,WM_CLOSE,NULL,NULL); 
			break; 
		case ID_ABOUT: 
			DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,DlgProc); 
			break; 
		default: 
			break; 
		} 
		break; 
	case WM_MENUSELECT: 
		MenuHelp(WM_MENUSELECT,wParam,lParam,(HMENU)lParam,hInst,hStatusBar,iMenuHelp); 
		break; 
	case WM_SIZE: 
		MoveWindow(hStatusBar,0,0,0,0,TRUE); 
		break; 
	case WM_CREATE: 
		hStatusBar=CreateWindow(STATUSCLASSNAME,NULL,WS_CHILD|WS_VISIBLE|SBS_SIZEGRIP,0,0,0,0,hWnd,(HMENU)ID_STATUSBAR,hInst,NULL); 
		SendMessage(hStatusBar,SB_SETPARTS,4,(LPARAM)iParts); 
		SendMessage(hStatusBar,SB_SETTEXT,2,(LPARAM)TEXT("²åÈë")); 
		break; 
	case WM_CLOSE: 
		DestroyWindow(hWnd); 
		PostQuitMessage(0); 
		break; 
	default: 
		return DefWindowProc(hWnd,uMsg,wParam,lParam); 
	} 
	return 0; 
} 
 
INT_PTR CALLBACK DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) 
{ 
	int wmID; 
	switch (uMsg) 
	{ 
	case WM_COMMAND: 
		wmID=LOWORD(wParam); 
		switch (wmID) 
		{ 
		case IDOK: 
		case IDCANCEL: 
			EndDialog(hDlg,NULL); 
			break; 
		default: 
			break; 
		} 
		break; 
	case WM_CLOSE: 
		EndDialog(hDlg,NULL); 
		break; 
	default: 
		return TRUE; 
	} 
	return TRUE; 
}