You are on page 1of 29

VINAY ARORA

81005113089

PRACTICAL 1
AIM: - Write a program to create a window using a message loop. PROGRAM: #include<windows.h> int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { HWND hWnd; MSG msg; hWnd = CreateWindow("BUTTON", "Hello World.", WS_OVERLAPPEDWINDOW, 150, 150, 500, 500, NULL, NULL, hInstance, NULL); ShowWindow(hWnd,nCmdShow); while(GetMessage(&msg,NULL,NULL,NULL)) { if(msg.message == WM_LBUTTONDOWN) break; else DefWindowProc(msg.hwnd,msg.message,msg.wParam,msg.lParam); } return 0; }

OUTPUT:-

DEPARTMENT OF INFORMATION & TECHNOLOGY

VINAY ARORA

81005113089

PRACTICAL 2
AIM: - Write a program to create a new window class. PROGRAM: #include<windows.h> LRESULT CALLBACK WndProcedure(HWND,UINT,WPARAM,LPARAM); int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG msg; WNDCLASS wndclass; if(!hPrevInstance) { wndclass.style =CS_HREDRAW|CS_VREDRAW; wndclass.lpfnWndProc =WndProcedure; 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 ="myclass"; if(!RegisterClass(&wndclass)) return(0); } hwnd=CreateWindow("myclass","VINAY ARORA",WS_OVERLAPPEDWINDOW,10,10,500,500,NULL,NULL,hInstance,NULL ); ShowWindow(hwnd,nCmdShow); while(GetMessage (&msg,NULL,NULL,NULL)) { DispatchMessage (&msg); } return(msg.wParam); DEPARTMENT OF INFORMATION & TECHNOLOGY 2

VINAY ARORA }

81005113089

LRESULT CALLBACK WndProcedure(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return(0L); } OUTPUT:-

DEPARTMENT OF INFORMATION & TECHNOLOGY

VINAY ARORA

81005113089

PRACTICAL 3
AIM: - Write a program to define a menu bar. PROGRAM: resource.h #define IDM_SHOW 1 #define IDM_QUIT 10 exp3.rc #include"resource.h" MyMenu MENU BEGIN MENUITEM "&Show" IDM_SHOW MENUITEM "&Quit" IDM_QUIT END exp3.cpp #include<windows.h> #include"resource.h" LRESULT CALLBACK WndProcedure(HWND,UINT,WPARAM,LPARAM); int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG msg; WNDCLASS wndclass; if(!hPrevInstance) { wndclass.style =CS_HREDRAW|CS_VREDRAW; wndclass.lpfnWndProc =WndProcedure; wndclass.cbClsExtra =0; wndclass.cbWndExtra =0; wndclass.hInstance =hInstance; wndclass.hIcon =LoadIcon(hInstance,"MyIcon"); wndclass.hCursor =LoadCursor(NULL,IDC_ARROW); wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName ="MyMenu"; wndclass.lpszClassName ="myclass"; if(!RegisterClass(&wndclass)) return(0); } DEPARTMENT OF INFORMATION & TECHNOLOGY 4

VINAY ARORA

81005113089

hwnd=CreateWindow("myclass","Menu Example", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,N ULL,NULL,hInstance,NULL); ShowWindow(hwnd,nCmdShow); while(GetMessage (&msg,NULL,NULL,NULL)>0) { TranslateMessage(&msg); DispatchMessage (&msg); } return(msg.wParam); } LRESULT CALLBACK WndProcedure(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_COMMAND: switch(wParam) { case IDM_SHOW: break; case IDM_QUIT: DestroyWindow(hwnd); break; } break; case WM_DESTROY: PostQuitMessage(WM_QUIT); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return(0L); }

DEPARTMENT OF INFORMATION & TECHNOLOGY

VINAY ARORA OUTPUT:-

81005113089

DEPARTMENT OF INFORMATION & TECHNOLOGY

VINAY ARORA

81005113089

PRACTICAL 4
AIM: - Write a program to output a text on screen. PROGRAM: resource.h #define IDM_SHOW 1 #define IDM_QUIT 10 exp4.rc #include"resource.h" MyMenu MENU BEGIN MENUITEM "&Show" IDM_SHOW MENUITEM "&Quit" IDM_QUIT END exp4.cpp #include<windows.h> #include"resource.h" LRESULT CALLBACK WndProcedure(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG msg; WNDCLASSEX wndclassex; wndclassex.style =CS_HREDRAW|CS_VREDRAW; wndclassex.lpfnWndProc =WndProcedure; wndclassex.cbClsExtra =0; wndclassex.cbWndExtra =0; wndclassex.hInstance =hInstance; wndclassex.hIcon =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hIconSm =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hCursor =LoadCursor(NULL,IDC_ARROW); wndclassex.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wndclassex.lpszMenuName ="MyMenu"; wndclassex.lpszClassName ="myclass"; wndclassex.cbSize =sizeof(WNDCLASSEX); if(!RegisterClassEx(&wndclassex)) return(0); DEPARTMENT OF INFORMATION & TECHNOLOGY 7

VINAY ARORA

81005113089

hwnd=CreateWindow("myclass","Hello!",WS_OVERLAPPEDWINDOW,CW_USED EFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NUL L,hInstance,NULL); ShowWindow(hwnd,nCmdShow); while(GetMessage (&msg,NULL,NULL,NULL)>0) { TranslateMessage(&msg); DispatchMessage (&msg); } return(msg.wParam); } LRESULT CALLBACK WndProcedure(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { HDC hDC; switch(uMsg) { case WM_COMMAND: switch(wParam) { case IDM_SHOW: hDC=GetDC(hwnd); TextOut(hDC,40,40,"Show is clicked!",16); ReleaseDC(hwnd,hDC); break; case IDM_QUIT: DestroyWindow(hwnd); break; } break; case WM_DESTROY: PostQuitMessage(WM_QUIT); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return 0; } OUTPUT:-

DEPARTMENT OF INFORMATION & TECHNOLOGY

VINAY ARORA

81005113089

PRACTICAL 5
DEPARTMENT OF INFORMATION & TECHNOLOGY 9

VINAY ARORA

81005113089

AIM: - Write a program to explain WM_PAINT cycle. PROGRAM: resource.h #define IDM_SHOW 1 #define IDM_QUIT 10 exp5.rc #include"resource.h" MyMenu MENU BEGIN MENUITEM "&Show" IDM_SHOW MENUITEM "&Quit" IDM_QUIT END exp5.cpp #include<windows.h> #include"resource.h" LRESULT CALLBACK WndProcedure(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG msg; WNDCLASSEX wndclassex; wndclassex.style =CS_HREDRAW|CS_VREDRAW; wndclassex.lpfnWndProc =WndProcedure; wndclassex.cbClsExtra =0; wndclassex.cbWndExtra =0; wndclassex.hInstance =hInstance; wndclassex.hIcon =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hIconSm =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hCursor =LoadCursor(NULL,IDC_ARROW); wndclassex.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wndclassex.lpszMenuName ="MyMenu"; wndclassex.lpszClassName ="myclass"; wndclassex.cbSize =sizeof(WNDCLASSEX); if(!RegisterClassEx(&wndclassex)) return(0);

DEPARTMENT OF INFORMATION & TECHNOLOGY

10

VINAY ARORA

81005113089

hwnd=CreateWindow("myclass","WM_PAINT cycle", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,N ULL,NULL,hInstance,NULL); ShowWindow(hwnd,nCmdShow); while(GetMessage (&msg,NULL,NULL,NULL)>0) { TranslateMessage(&msg); DispatchMessage (&msg); } return(msg.wParam); } LRESULT CALLBACK WndProcedure(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM lParam) { HDC hDC; PAINTSTRUCT ps; switch(Msg) { case WM_COMMAND: switch(wParam) { case IDM_SHOW: hDC=GetDC(hwnd); TextOut(hDC,40,40,"Show is clicked!",16); ReleaseDC(hwnd,hDC); break; case IDM_QUIT: DestroyWindow(hwnd); break; } break; case WM_PAINT: hDC=BeginPaint(hwnd,&ps); TextOut(hDC,20,20,"Window is being repainted!",26); EndPaint(hwnd,&ps); break; case WM_DESTROY: PostQuitMessage(WM_QUIT); break; default: return DefWindowProc(hwnd,Msg,wParam,lParam); } return 0; }

DEPARTMENT OF INFORMATION & TECHNOLOGY

11

VINAY ARORA OUTPUT:-

81005113089

DEPARTMENT OF INFORMATION & TECHNOLOGY

12

VINAY ARORA

81005113089

PRACTICAL 6
AIM: - Write a program to change the device context. PROGRAM: resource.h #define IDM_SHOW 1 #define IDM_QUIT 10 exp6.rc #include"resource.h" MyMenu MENU BEGIN MENUITEM "&Show" IDM_SHOW MENUITEM "&Quit" IDM_QUIT END exp6.cpp #include<windows.h> #include"resource.h" LRESULT CALLBACK WndProcedure(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG msg; WNDCLASSEX wndclassex; wndclassex.style =CS_HREDRAW|CS_VREDRAW; wndclassex.lpfnWndProc =WndProcedure; wndclassex.cbClsExtra =0; wndclassex.cbWndExtra =0; wndclassex.hInstance =hInstance; wndclassex.hIcon =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hIconSm =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hCursor =LoadCursor(NULL,IDC_ARROW); wndclassex.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wndclassex.lpszMenuName ="MyMenu"; wndclassex.lpszClassName ="myclass"; wndclassex.cbSize =sizeof(WNDCLASSEX); if(!RegisterClassEx(&wndclassex)) return(0); hwnd=CreateWindow("myclass","Changing device context", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USED EFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL); DEPARTMENT OF INFORMATION & TECHNOLOGY 13

VINAY ARORA ShowWindow(hwnd,nCmdShow); while(GetMessage (&msg,NULL,NULL,NULL)>0) { TranslateMessage(&msg); DispatchMessage (&msg); }

81005113089

return(msg.wParam); } LRESULT CALLBACK WndProcedure(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM lParam) { HDC hDC; PAINTSTRUCT ps; switch(Msg) { case WM_COMMAND: switch(wParam) { case IDM_SHOW: hDC=GetDC(hwnd); TextOut(hDC,40,40,"Hello! ",16); ReleaseDC(hwnd,hDC); break; case IDM_QUIT:DestroyWindow(hwnd); break; } break; case WM_PAINT: hDC=BeginPaint(hwnd,&ps); SetTextColor(hDC,RGB(255,0,0)); SetBkMode(hDC,OPAQUE); SetBkColor(hDC,RGB(0,0,255)); TextOut(hDC,20,20,"Window is being repainted!",26); EndPaint(hwnd,&ps); break; case WM_DESTROY: PostQuitMessage(WM_QUIT); break; default: return DefWindowProc(hwnd,Msg,wParam,lParam); } return 0; }

DEPARTMENT OF INFORMATION & TECHNOLOGY

14

VINAY ARORA OUTPUT:-

81005113089

DEPARTMENT OF INFORMATION & TECHNOLOGY

15

VINAY ARORA

81005113089

PRACTICAL 7
AIM: - Write a program to create popup menus using resource script file. PROGRAM: resource.h #define IDM_NEW 1 #define IDM_SAVE 2 #define IDM_RES 3 #define IDM_SRC 4 #define IDM_EDIT 5 #define IDM_QUIT 6 exp6.rc #include"resource.h" MyMenu MENU BEGIN POPUP "&File" BEGIN MENUITEM "&New" IDM_NEW POPUP "&Open" BEGIN MENUITEM"&Resource" IDM_RES MENUITEM "&Source" IDM_SRC END MENUITEM "&Save" IDM_SAVE END MENUITEM "&Edit" IDM_EDIT MENUITEM "&Quit" IDM_QUIT END exp6.cpp #include<windows.h> #include"resource.h" LRESULT CALLBACK WndProcedure(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG msg; WNDCLASSEX wndclassex; wndclassex.style =CS_HREDRAW|CS_VREDRAW; wndclassex.lpfnWndProc =WndProcedure; wndclassex.cbClsExtra =0; DEPARTMENT OF INFORMATION & TECHNOLOGY 16

VINAY ARORA

81005113089

wndclassex.cbWndExtra =0; wndclassex.hInstance =hInstance; wndclassex.hIcon =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hIconSm =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hCursor =LoadCursor(NULL,IDC_ARROW); wndclassex.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wndclassex.lpszMenuName ="MyMenu"; wndclassex.lpszClassName ="myclass"; wndclassex.cbSize =sizeof(WNDCLASSEX); if(!RegisterClassEx(&wndclassex)) return(0); hwnd=CreateWindow("myclass","POP-UP menus", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,N ULL,NULL,hInstance,NULL); ShowWindow(hwnd,nCmdShow); while(GetMessage (&msg,NULL,NULL,NULL)>0) { TranslateMessage(&msg); DispatchMessage (&msg); } return(msg.wParam); } LRESULT CALLBACK WndProcedure(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM lParam) { switch(Msg) { case WM_COMMAND: switch(wParam) { case IDM_QUIT:DestroyWindow(hwnd); break; } case WM_DESTROY: PostQuitMessage(WM_QUIT); break; default: return DefWindowProc(hwnd,Msg,wParam,lParam); } return 0; }

DEPARTMENT OF INFORMATION & TECHNOLOGY

17

VINAY ARORA OUTPUT:-

81005113089

DEPARTMENT OF INFORMATION & TECHNOLOGY

18

VINAY ARORA

81005113089

PRACTICAL 8
AIM: - Write a program using the STATIC window control. PROGRAM: resource.h #define IDM_CHANGE 1 #define IDM_QUIT 10 exp8.rc MyIcon ICON SINEWAVE.ico #include"resource.h" MyMenu MENU BEGIN MENUITEM "&Change" IDM_CHANGE MENUITEM "&Quit" IDM_QUIT END exp8.cpp #include<windows.h> #include"resource.h" LRESULT CALLBACK WndProcedure(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG msg; WNDCLASSEX wndclassex; wndclassex.style =CS_HREDRAW|CS_VREDRAW; wndclassex.lpfnWndProc =WndProcedure; wndclassex.cbClsExtra =0; wndclassex.cbWndExtra =0; wndclassex.hInstance =hInstance; wndclassex.hIcon =LoadIcon(hInstance,"MyIcon"); wndclassex.hIconSm =LoadIcon(hInstance,"MyIcon"); wndclassex.hCursor =LoadCursor(NULL,IDC_ARROW); wndclassex.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wndclassex.lpszMenuName ="MyMenu"; wndclassex.lpszClassName ="myclass"; wndclassex.cbSize =sizeof(WNDCLASSEX); if(!RegisterClassEx(&wndclassex)) return(0); DEPARTMENT OF INFORMATION & TECHNOLOGY 19

VINAY ARORA

81005113089

hwnd=CreateWindow("myclass","Static Control",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,C W_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,nCmdShow); while(GetMessage (&msg,NULL,NULL,NULL)>0) { TranslateMessage(&msg); DispatchMessage (&msg); } return(msg.wParam); } LRESULT CALLBACK WndProcedure(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { static BOOL bFirstTime = TRUE; static HANDLE hstatictext,hstaticicon; HANDLE hInstance; switch(uMsg) { case WM_CREATE: if(bFirstTime) { bFirstTime = FALSE; hInstance = (HINSTANCE)GetWindowLong(hwnd,GWL_STYLE); //get the instance handle hstatictext = CreateWindow("STATIC","this is static text",WS_CHILD|SS_CENTER,10,10,100,100,hwnd,NULL, (HINSTANCE)hInstance,NULL); hstaticicon = CreateWindow("STATIC","MyIcon",WS_CHILD| SS_ICON,150,10,160,20,hwnd,NULL,(HINSTANCE)hInstance,NULL); ShowWindow((HWND)hstatictext,SW_SHOWNORMAL); ShowWindow((HWND)hstaticicon,SW_SHOWNORMAL); } break;

DEPARTMENT OF INFORMATION & TECHNOLOGY

20

VINAY ARORA

81005113089

case WM_COMMAND: switch(wParam) { case IDM_CHANGE: SetWindowText((HWND)hstatictext,"Static text changed"); break; case IDM_QUIT: DestroyWindow(hwnd); break; } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return(0L); }

DEPARTMENT OF INFORMATION & TECHNOLOGY

21

VINAY ARORA OUTPUT:-

81005113089

On clicking Change, the output is as follows:-

DEPARTMENT OF INFORMATION & TECHNOLOGY

22

VINAY ARORA

81005113089

PRACTICAL 9
AIM: - Write a program using the button window control. PROGRAM: resource.h #define IDM_QUIT 10 exp9.rc #include"resource.h" MyMenu MENU BEGIN MENUITEM "&Quit" IDM_QUIT END exp9.cpp #include<windows.h> #include"resource.h" LRESULT CALLBACK WndProcedure(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG msg; WNDCLASSEX wndclassex; wndclassex.style =CS_HREDRAW|CS_VREDRAW; wndclassex.lpfnWndProc =WndProcedure; wndclassex.cbClsExtra =0; wndclassex.cbWndExtra =0; wndclassex.hInstance =hInstance; wndclassex.hIcon =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hIconSm =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hCursor =LoadCursor(NULL,IDC_ARROW); wndclassex.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wndclassex.lpszMenuName ="MyMenu"; wndclassex.lpszClassName ="myclass"; wndclassex.cbSize =sizeof(WNDCLASSEX); if(!RegisterClassEx(&wndclassex)) return(0); hwnd=CreateWindow("myclass","BUTTON class", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,N ULL,NULL,hInstance,NULL); ShowWindow(hwnd,nCmdShow);

DEPARTMENT OF INFORMATION & TECHNOLOGY

23

VINAY ARORA while(GetMessage (&msg,NULL,NULL,NULL)>0) { TranslateMessage(&msg); DispatchMessage (&msg); }

81005113089

return(msg.wParam); } LRESULT CALLBACK WndProcedure(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM lParam) { static BOOL bFirstTime=TRUE; static HANDLE hGroup,hRad1,hRad2,hCheck; HANDLE hInstance; switch(Msg) { case WM_CREATE: if(bFirstTime) { bFirstTime=FALSE; hInstance=(HINSTANCE)GetWindowLong(hwnd,GWL_STYLE); hGroup=CreateWindow("BUTTON","This is a group box.",WS_CHILD| BS_GROUPBOX,10,10,250,250,hwnd,NULL,(HINSTANCE)hInstance,NULL); hRad1=CreateWindow("BUTTON","Radio Button 1",WS_CHILD| BS_RADIOBUTTON,30,30,150,50,hwnd,(HMENU)radio1, (HINSTANCE)hInstance,NULL); hRad2=CreateWindow("BUTTON","Radio Button 2",WS_CHILD| BS_RADIOBUTTON,30,80,150,50,hwnd,(HMENU)radio2, (HINSTANCE)hInstance,NULL); hCheck=CreateWindow("BUTTON","Checkbox",WS_CHILD| BS_CHECKBOX,30,130,150,50,hwnd,(HMENU)check, (HINSTANCE)hInstance,NULL); ShowWindow((HWND)hGroup,SW_SHOWNORMAL); ShowWindow((HWND)hRad1,SW_SHOWNORMAL); ShowWindow((HWND)hRad2,SW_SHOWNORMAL); ShowWindow((HWND)hCheck,SW_SHOWNORMAL); } break; case WM_COMMAND: switch(wParam) { case radio1: SendMessage((HWND)hRad1,BM_SETCHECK,TRUE,0); SendMessage((HWND)hRad2,BM_SETCHECK,FALSE,0); break;

DEPARTMENT OF INFORMATION & TECHNOLOGY

24

VINAY ARORA case radio2:

81005113089

SendMessage((HWND)hRad1,BM_SETCHECK,FALSE,0); SendMessage((HWND)hRad2,BM_SETCHECK,TRUE,0); break; case check: break; case IDM_QUIT: DestroyWindow(hwnd); break; } break; case WM_DESTROY: PostQuitMessage(WM_QUIT); break; default: return DefWindowProc(hwnd,Msg,wParam,lParam); } return 0; }

OUTPUT:-

DEPARTMENT OF INFORMATION & TECHNOLOGY

25

VINAY ARORA

81005113089

PRACTICAL 10
DEPARTMENT OF INFORMATION & TECHNOLOGY 26

VINAY ARORA

81005113089

AIM: - Write a program to draw a rectangle and ellipse using graphics. PROGRAM: resource.h #define IDM_QUIT 10 exp10.rc #include"resource.h" MyMenu MENU BEGIN MENUITEM "&Quit" IDM_QUIT END exp10.cpp #include<windows.h> #include"resource.h" LRESULT CALLBACK WndProcedure(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG msg; WNDCLASSEX wndclassex; wndclassex.style =CS_HREDRAW|CS_VREDRAW; wndclassex.lpfnWndProc =WndProcedure; wndclassex.cbClsExtra =0; wndclassex.cbWndExtra =0; wndclassex.hInstance =hInstance; wndclassex.hIcon =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hIconSm =LoadIcon(NULL,IDI_APPLICATION); wndclassex.hCursor =LoadCursor(NULL,IDC_ARROW); wndclassex.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wndclassex.lpszMenuName ="MyMenu"; wndclassex.lpszClassName ="myclass"; wndclassex.cbSize =sizeof(WNDCLASSEX); if(!RegisterClassEx(&wndclassex)) return(0); hwnd=CreateWindow("myclass","using graphics", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,N ULL,NULL,hInstance,NULL); ShowWindow(hwnd,nCmdShow); while(GetMessage (&msg,NULL,NULL,NULL)>0) { TranslateMessage(&msg); DispatchMessage (&msg); }

DEPARTMENT OF INFORMATION & TECHNOLOGY

27

VINAY ARORA

81005113089

return(msg.wParam); } LRESULT CALLBACK WndProcedure(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM lParam) { HDC hDC; PAINTSTRUCT ps; HPEN hPen,holdPen; HBRUSH hBrush,holdBrush; switch(Msg) { case WM_COMMAND: switch(wParam) { case IDM_QUIT:DestroyWindow(hwnd); break; } case WM_PAINT: hDC=BeginPaint(hwnd,&ps); hPen=CreatePen(PS_SOLID,3,RGB(255,16,16)); hBrush=CreateSolidBrush(RGB(0,128,128)); holdBrush=(HBRUSH)SelectObject(hDC,hBrush); holdPen=(HPEN)SelectObject(hDC,hPen); Rectangle(hDC,10,10,80,60); hBrush=(HBRUSH)SelectObject(hDC,holdBrush); DeleteObject(hBrush); hBrush=CreateHatchBrush(HS_DIAGCROSS,RGB(255,16,16)); holdBrush=(HBRUSH)SelectObject(hDC,hBrush); Ellipse(hDC,100,30,180,90); hBrush=(HBRUSH)SelectObject(hDC,holdBrush); DeleteObject(hBrush); hPen=(HPEN)SelectObject(hDC,holdPen); DeleteObject(hPen); EndPaint(hwnd,&ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,Msg,wParam,lParam); } return 0; } OUTPUT:-

DEPARTMENT OF INFORMATION & TECHNOLOGY

28

VINAY ARORA

81005113089

DEPARTMENT OF INFORMATION & TECHNOLOGY

29

You might also like