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; }