Code:
#include <windows.h>
class MyWindow
{
public:
HWND m_hWnd;
public:
MyWindow();
BOOL CreateWin(LPCTSTR lpClassName,LPCTSTR lpWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,
HWND hWndParent,HMENU hMenu,HINSTANCE hInstance,LPVOID lpParam );
BOOL ShowWindow(int iCmdShow) ;
BOOL UpdateWindow();
static LRESULT CALLBACK WndProc (HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam);
};
MyWindow::MyWindow()
{
m_hWnd=0;
}
BOOL MyWindow::CreateWin(LPCTSTR lpClassName, LPCTSTR lpWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,
HWND hWndParent, HMENU hMenu,HINSTANCE hInstance, LPVOID lpParam)
{
m_hWnd = ::CreateWindow (lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam);
if(NULL==m_hWand)
return FALSE;
else
return TRUE;
}
BOOL MyWindow::ShowWindow(int iCmdShow)
{
return ::ShowWindow(m_hWnd,iCmdShow);
}
BOOL MyWindow::UpdateWindow()
{
return ::UpdateWindow (m_hWnd);
}
LRESULT MyWindow::WndProc (HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message)
{
case WM_LBUTTONDOWN:
MessageBox (hWnd,"WM_LBUTTONDOWN","Title",MB_OK);
return 0 ;
case WM_RBUTTONDOWN:
MessageBox (hWnd,"WM_RBUTTONDOWN","Title",MB_OK);
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps) ;
GetClientRect (hWnd, &rect) ;
DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hWnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hWnd, message, wParam, lParam) ;
}
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin") ;
MSG msg ;
class MyWindow MyObj;
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = MyWindow::WndProc;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
TEXT ("HelloWin"), MB_ICONERROR) ;
return 0 ;
}
MyObj.CreateWin(szAppName,TEXT("The Hello Program"),
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL, hInstance,NULL);
MyObj.ShowWindow(SW_SHOWNORMAL);
MyObj.UpdateWindow();
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}