45
VIDYAA VIKAS COLLEGE OF ENGINEERING AND TECHNOLOGY TIRUCHENGODE - 637 214 DEPARTMENT OF MASTER OF COMPUTER APPLICATIONS RECORD NOTEBOOK NAME : ………………………………… REGISTER NO : ……………………………….. SUBJECT CODE : …………………………………. SUBJECT : ………………………………….

90983596 Visual Programming Lab Manual

Embed Size (px)

Citation preview

Page 1: 90983596 Visual Programming Lab Manual

VIDYAA VIKAS COLLEGE OF ENGINEERING AND TECHNOLOGY

TIRUCHENGODE - 637 214

DEPARTMENT OF MASTER OF COMPUTER APPLICATIONS

RECORD NOTEBOOK

NAME : …………………………………

REGISTER NO : ………………………………..

SUBJECT CODE : ………………………………….

SUBJECT : ………………………………….

Page 2: 90983596 Visual Programming Lab Manual

VIDYAA VIKAS COLLEGE OF ENGINEERING AND TECHNOLOGY

TIRUCHENGODE-637 214

Certified that this is the bonafide record of work done by

Mr / Ms……………………………………………………………. with register

number……………………. of II year / IV semester during the academic

year 2011 - 2012 for the VISUAL PROGRAMMING LAB.

Staff-in-charge Head of the Department

Submitted for the university practical examination held on……………………….

Internal Examiner External Examiner

DEPARTMENT OF MASTER OF COMPUTER APPLICATIONS

Page 3: 90983596 Visual Programming Lab Manual

INDEX

S.No

DATE

NAME OF THE PROGRAM

PAGE

NO

MARKS

STAFF SIGN

WINDOWS SDK/Visual C++

1.

KEYBOARD AND MOUSE EVENT

2.

DIALOG BASED APPLICATIONS

3.

MULTIPLE DOCUMENT INTERFACE

VISUAL C++

4.

THREADS

5.

DOCUMENT VIEW ARCHITECTURE, SERIALIZATION

6.

DYNAMIC CONTROLS

7.

MENU, ACCELERATOR, TOOL TIP, TOOL BAR

8.

CREATING DLLs AND USING THEM

9.

DATA ACCESS THROUGH ODBC

10.

ACTIVEX CONTROL

AVERAGE

Page 4: 90983596 Visual Programming Lab Manual
Page 5: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

KEYBOARD AND MOUSE EVENT

AIM:

To write a program in visual c++ for performing mouse and keyboard events.

PROCEDURE:

Step1: Start the process.

Step2: Create the window by using window function and set parameters as need.

Step3: Use the showwindow( ) to display the window.

Step4: Add mouse and keyboard event in my function.

Step5: Use message WM_LBUTTONDOWM and WM_LBUTTONUP for

drawing dotted lines.

Step6: Use message WM_KEYDOWN and WM_KEYUP for pressing and

releasing any key in keyboard.

Step7: Use WM_SYSKEYDOWN and WM_SYSKEYUP for performing alt or f10

key events.

Step8: Build and run the project.

Step9: stop the process.

Page 6: 90983596 Visual Programming Lab Manual

CODING:

#include"stdafx.h"

LRESULT CALLBACK WndProc(HWND,UINT,UINT,long);

WNDCLASS a;

int flag=0;

int WINAPI WinMain(HINSTANCE i,HINSTANCE j,char *k,int l)

{

HWND h;

MSG m;

a.hInstance =i;

a.lpszClassName ="My";

a.lpfnWndProc =WndProc;

a.hbrBackground =(HBRUSH) GetStockObject(WHITE_BRUSH);

RegisterClass(&a);

h=CreateWindow("My","Title",WS_OVERLAPPEDWINDOW,

10,10,150,100,0,0,0,i,0);

ShowWindow(h,3);

while(GetMessage(&m,0,0,0))

DispatchMessage(&m);

return 0;

}

LRESULT CALLBACK WndProc(HWND W,UINT x,UINT y,long z)

{

HDC d;

d=GetDC(W);

switch(x)

{

case WM_LBUTTONDOWN:

flag=1; break;

Page 7: 90983596 Visual Programming Lab Manual

case WM_MOUSEMOVE:

if(flag==1)

{

d=GetDC(W);

SetPixel(d,LOWORD(z),HIWORD(z),RGB(255,85,158));

ReleaseDC(W,d);

}

break;

case WM_LBUTTONUP:

flag=0; break;

case WM_KEYDOWN:

TextOut(d,100,100,"Key Pressed",12);break;

case WM_KEYUP:

TextOut(d,100,100,"Key Released",12);break;

case WM_SYSKEYDOWN:

TextOut(d,500,500,"Alt(or)F10 is pressed",21);break;

case WM_SYSKEYUP:

TextOut(d,500,500,"Alt(or)F10 is Released",22);break;

default:

return DefWindowProc(W,x,y,z);

}

return 0;

}

Page 8: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 9: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

DIALOG BASED APPLICATIONS

AIM:

To write a VC++ program for Dialog based Control.

PROCEDURE:

Step 1: Start the Program.

Step 2: Create the New project by selecting

File->New->MFCAppWizard(exe)and type Filename,and Select Dialog based

option then click Finish.

Step 3: select resource tab Choose the Dialog boxname

IDD_DIALOG_BOX to add control to the dialog box using the tool box.

Step 4: Build the dialog box with Name,Age,Salary,Experience,

grade by dragging static Button and edit Button.

Step 5: Select Each and every staticcontrols and change the caption.

Step 6: Add value variable and control variable by selecting the right click on the edit

control and select the Class wizard from the menu and select the

member variable and type member variable with related category type.

Step 7: select message map tab.

Step 8: select IDOK from object IDs then select BN_CLICKED from messages.

Step 9: Press add function and then press edit code button and type the code.

Step 10: Click on ok Button. Click on build and execute.

Page 10: 90983596 Visual Programming Lab Manual

CODING:

DIALOG BASED CONTROL:

//Initialize Member Variable

BOOL CDialogDlg::OnInitDialog()

{

m_Name=_T("Enter your name");

m_Age=0; m_Salary=0;

CDialog::OnInitDialog();

m_Gradeval.AddString("I");m_Gradeval.AddString("II");

m_Gradeval.AddString("III");m_Gradeval.AddString("IV");

m_Gradeval.SetCurSel(0);

m_Experienceval.AddString("<3 yrs");

m_Experienceval.AddString("3 to 5 yrs");

m_Experienceval.AddString("6 to 10 yrs");

m_Experienceval.SetCurSel(0); return TRUE;

}

//Message Handler for OK

void CDialogDlg::OnOK()

{

CDialog::OnOK();

CString str,temp;

str="Name:"+m_Name;

str+="\nGrade:"+m_Grade;

str+="\nExperience:"+m_Experience;

str+=”\nAge”;

temp.Format("%d",m_Age);

str+=temp;

str+="\nSalary";

temp.Format("%d",m_Salary);

str+=temp;

MessageBox(str);

}

Page 11: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 12: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

MULTIPLE DOCUMENT INTERFACE

AIM:

To write a VC++ program to create a message box using MDI.

PROCEDURE:

Step 1: Start the Program

Step 2: Create the New project by selecting File->New->MFCAppWizard (exe)

and type Filename.

Step 3: Choose MDI option to create MDI and click finish.

Step 4: Choose view from the File view and Edit code.

Step 5: Then save and Press ctrl+f5 to compile and press ctrl+f7 to execute.

Step6: Stop the program.

Page 13: 90983596 Visual Programming Lab Manual

CODING:

void CMultipledocView::OnDraw(CDC* pDC)

{

CMultipledocDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

MessageBox("This is multiple document",0,MB_OK);

}

Page 14: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 15: 90983596 Visual Programming Lab Manual
Page 16: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

THREADS

AIM:

To develop the single threaded program that contains the CPU intensive computation

loop.

PROCEDURE:

Step 1: File->new->MFC Appwizard(exe) & click SDI application then finish button.

Step 2: Open the resource view dialog folder, right click & choose insert dialog.

Step 3: Design the dialog with start ,cancel button & progress bar

with the id ID_START,ID_CANCEL & ID_PROGRESS1 respectively.

Step 4: Choose view->classwizard,select create a new dialog then give the

name as “compute” & click ok button.

Step 5: Select class name-> compute,object ID is compute,

messages-WM_TIMER then click add function.

Step 6: select object id->ID_START,messages->BN_CLICKED then click

add function and also add function to ID_CANCEL . finally click edit code.

Step 7: select file view->header files->compute.h file. Declare the variable

under class compute.

Step 8: select file view->source files->projectnameview.cpp. Include header

file as “#include “compute.h” “.then type coding under on draw function.

Step 9: select view->class wizard , select object ID ->C”projectname”view

messages->WM_LBUTTONDOWN click add function and edit code.

Page 17: 90983596 Visual Programming Lab Manual

CODING:

Type in compute.cpp in source files

void compute::OnCancel()

{

if(m_ncount==0)

CDialog::OnCancel();

else

m_ncount=nmaxcount;

}

void compute::OnStart()

{

MSG message;

m_ntimer=SetTimer(1,100,NULL);

ASSERT(m_ntimer!=0);

GetDlgItem(ID_START)->EnableWindow(FALSE);

volatile int temp;

for(m_ncount=0;m_ncount<nmaxcount;m_ncount++)

{

for(temp=0;temp<10000;temp++)

{ }

if(::PeekMessage(&message,NULL,0,0,PM_REMOVE))

{

::TranslateMessage(&message);

::DispatchMessage(&message);

}

}

Page 18: 90983596 Visual Programming Lab Manual

CDialog::OnOK();

}

void compute::OnTimer(UINT nIDEvent)

{

CProgressCtrl *pbar=(CProgressCtrl *)GetDlgItem(IDC_PROGRESS1);

pbar->SetPos(m_ncount *100/nmaxcount);

CDialog::OnTimer(nIDEvent);

}

Declare the variable in compute.h in header files

Under class compute : public CDialog

int m_ntimer;

int m_ncount;

enum{nmaxcount=10000};

Type in threadsview.cpp in source files

void CThreadsView::OnDraw(CDC* pDC)

{

CThreadsDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDC->TextOut(0,0,"Press left mouse button”);

}

void CThreadsView::OnLButtonDown(UINT nFlags, CPoint point)

{

compute dlg;

dlg.DoModal();

CView::OnLButtonDown(nFlags, point);

}

Page 19: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 20: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

DOCUMENT VIEW ARCHITECTURE, SERIALIZATION

AIM:

To develop the VC++ program for document view architecture with serialization.

PROCEDURE:

Step 1: Run VC++ APPWizard (exe) to create SDI application.

Step 2: Accept all the default settings and select the document view architecture

and deselect the printing and print preview by accepting all the default

settings.

Step 3: Declare the string data members in viewdoc.h file CString str data.

Step 4: Edit the serialize() function to viewdoc.cpp.

Step 5: Use the class wizard to connect the WM_CHAR() message handler

in viewview.cpp

Step 6: Build the program.

Page 21: 90983596 Visual Programming Lab Manual

CODING:

void CDocDoc::Serialize(CArchive& ar)

{

if (ar.IsStoring())

{

ar<<StrData;

}

else

{

ar>>StrData;

}

}

void CDocView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

CDocDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDoc->StrData+=nChar;

Invalidate();

pDoc->SetModifiedFlag();

CView::OnChar(nChar, nRepCnt, nFlags);

}

void CDocView::OnDraw(CDC* pDC)

{

CDocDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDC->TextOut(0,0,pDoc->StrData);

}

Page 22: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 23: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

DYNAMIC CONTROLS

AIM:

To create simple object COM with the function to display the string and to

check the functionality of COM using Visual Basic.

PROCEDURE:

Step 1: Start the program.

Step 2: File> New>Projects> ATLCOM AppWizard and give the file name.

Step 3: Accept all the default settings and click DLL and click finish.

Step 4: Click the class file and right click and select new ATL object.select

simple object in the ATL Object Wizard and click next.Then fill

the ATL object wizard names,attributes and click ok.

Step 5: Right click the project class workspace to add a method.

Step 6: Then fill the method name add and attributes as [in] long a,

[in] long b,[out] long *d and click ok.

Step 7: Then right click the method add[long a,long b] and write the code.

Step 8: Then save the project and just compile the code without executing

and COM now created successfully.

Step 9: Now test COM using Visual Basic and open the visual basic and

create a new standard EXE project.

Step 10: Design a form with one button as ADD. Click project menu.

Step 11: Select References Click Browse and select the COM project and

select library file COM.Liband click ok write code for the command button.

Step 12: Save and Run the project.

Step 13: Stop the program.

Page 24: 90983596 Visual Programming Lab Manual

CODING:

#include "stdafx.h"

#include "com.h"

#include "TEST_ATL.h"

STDMETHODIMP CTEST_ATL::add(long a, long b, long *d)

{

*d=a+b;

return S_OK;

}

FORM:

Private Sub Command1_Click()

Dim c As COMLib.TEST_ATL

Set c = New TEST_ATL

Dim x As Long

c.Add 20, 50, x

MsgBox ("20,50=" & x)

End Sub

Page 25: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 26: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

MENU, ACCELERATOR, TOOLBAR AND TOOLTIP

AIM:

To draw Line, Rectangle using Toolbar and Menu bar.

PROCEDURE:

Step 1: Start the Program.

Step 2: Create the New project by selecting

File->New->MFCAppWizard (exe) and type Filename.

Step 3: Choose single document option and click finish.

Step 4: From the Resource Tab select Menu->IDR_MAINFRAME then double click.

Step 5: select the Empty field and then right click choose properties type draw in

the caption field.

Step 6: Same procedure for line, type line in caption. ID_DRAW_LINE in ID and

ctrl+l in prompt.

Step 7: From the tool bar select IDR_MAINFRAME, select any tool and draw it in

the graph. Then press enter, choose ID_DRAW_LINE in ID.

Step 8: Select properties in the dialog box type ID_DRAW_LINE in ID and type ‘l’ in

next box.

Step 9: From File view, select source file->toolview.cpp, and right click in the code

area and select class wizard select ID_DRAW_LINE from object ID’s,

and select command in messages and click add function then edit the code .

Step 10: Press Ctrl +f5 for compile and press ctrl +f7 for execute.

Step 11: Stop the program.

Page 27: 90983596 Visual Programming Lab Manual

CODING:

void CMenuView::OnDrawLine()

{

CClientDC dc(this);

dc.LineTo (100,300);

}

void CMenuView::OnDrawEllipse()

{

CClientDC dc(this);

dc.Ellipse (100,50,50,100);

}

void CMenuView::OnDrawRectangle()

{

CClientDC dc(this);

dc.Rectangle (100,100,200,200);

}

Page 28: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 29: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

CREATING DLLs AND USING THEM

AIM:

To write a VC++ program for implementing Dynamic Link Libraries.

PROCEDURE

Step1: Run application wizard(dll) and create a project named Framer

select Regular DLL using shared MFC DLL in step2 dialogbox

then click finish.

Step2: Edit the Framer.h header file. Add the prototype for function DateAndTime.

Step3: Edit the Framer.cpp file, code the DateAndTime function.

Step4: Build the Framer.cpp file code and copy Framer.dll to

windows/system directory Or windows/system32 directory.

Step5: Copy the Framer.lib file to the sub directory of the application that will use dll.

Step6: Run Application wizard(exe) and create an application dlldemo. Select SDI

and shared dll option in step5 dialog box & click finish.

Step7: Edit dlldemoView.h and dlldemoView.cpp file to call the dll.

Step8: Choose project->settings->link. Give the pathname of library in object/module

link option.

Step9: Build and run the dlldemo application.

Page 30: 90983596 Visual Programming Lab Manual

CODING:

Framer.h

#include "resource.h"

__declspec(dllexport)void WINAPI DateAndTime();

Framer.cpp

__declspec(dllexport)void WINAPI DateAndTime()

{

AFX_MANAGE_STATE(AfxGetStaticModuleState());

struct tm* date_time;

time_t timer;

time(&timer);

date_time=localtime(&timer);

const CString& strtime = asctime(date_time);

AfxMessageBox(strtime,MB_OK,0);

}

dlldemoView.h //prototype declaration

extern void WINAPI DateAndTime();

dlldemoView.cpp

void CDlldemoView::OnDraw(CDC* pDC)

{

pDC->TextOut(280,100,"send text to window",23);

DateAndTime();

}

Page 31: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 32: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

DATA ACCESS THROUGH ODBC

AIM:

To create an ODBC connectivity for the Database using VC++.

PROCEDURE:

Step1: Start the program.

Step2: Create the database name as student details.mdb using MSAccess

with field Name, Regno,Mark1,Mark2,Mark3,Total.

Step3: To create a ODBC Connection Start>Control Panel>ODBC.

Choose “User DSN” tab from the ODBC Data Source.

Step4: Click the add Button select MS ACCESS driver (*.mdb) from the created

new data source dialog box.

Step5: Enter the Data Source Name and description as ODBCD

Microsoft Access setup and assign newly created (student details.mdb)

to the ODBC.Then click ok.

Step6: Creation of front end application in VC++ ,

Step7: Select file>projects>MFCAppWizard (.exe) and give the project

name as student and select SDI.

Step18: Select The Option Data Base view with file support and select the

data source name we have created and the table name under Ms Access

using Data Source Button.

Step9: Select Dynaset option from the Record set then click Finish.

Step10: Add the controls using Toolbox and in class wizard assign the

record field name as the Member variable to the controls.

Page 33: 90983596 Visual Programming Lab Manual

Step11: Add the Message handler member function to the control and click edit code.

Step12: Then save and press ctrl+f5 to compile and press Ctrl+f7 to execute.

Step13: Stop the program.

Page 34: 90983596 Visual Programming Lab Manual

CODING:

void COdbcd1View::OnAddvalue()

{

SetDlgItemInt(IDC_regno,0);

SetDlgItemText(IDC_name," ");

SetDlgItemInt(IDC_m1,0);

SetDlgItemInt(IDC_m2,0);

SetDlgItemInt(IDC_m3,0);

SetDlgItemInt(IDC_total,0);

}

void COdbcd1View::OnCalculate()

{

UpdateData(true);

m_pSet->m_Total =m_pSet->m_M1 +m_pSet->m_M2 +m_pSet->m_M3 ;

UpdateData(false);

}

void COdbcd1View::OnSave()

{

m_pSet->AddNew ();

UpdateData(true);

if(m_pSet->CanUpdate ())

{

m_pSet->Update();

Page 35: 90983596 Visual Programming Lab Manual

MessageBox("Records Added");

}

if(m_pSet->IsEOF ())

{

m_pSet->MoveLast();

UpdateData(false);

}

}

void COdbcd1View::OnUpdate()

{

m_pSet->Edit ();

UpdateData(true);

if(m_pSet->CanUpdate ())

{

m_pSet->Update ();

MessageBox("Records Updated");

}

}

Page 36: 90983596 Visual Programming Lab Manual

void COdbcd1View::OnDelete()

{

int f;

try

{

f=MessageBox("Are u Sure ","Delete",MB_OKCANCEL);

if(f=IDOK)

{

m_pSet->Delete ();

MessageBox("records Deleted");

}

}

catch(CDBException *e)

{

MessageBox(e->m_strError );

e->Delete ();

}

m_pSet->MoveNext ();

UpdateData(true);

}

Page 37: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 38: 90983596 Visual Programming Lab Manual

EX.NO: DATE:

ACTIVEX CONTROL

AIM:

To install the Activex Control into our application and perform the Calendar Control.

PROCEDURE:

Step1: Run VC++ AppWizard(EXE) to create an SDI application:Accept

all the default settings and select the document view architecture and click

finish to design the project.

Step2: Select the ActiveXcontrols in the AppWizard Step3 dialog,make

sure the activeX Controls option is selected.

Step 3: Now we have to insert the ActiveXControls into our project.Choose

add to Project from Visual C++’s Project menu and then choose

components and Controls.

Step 4: Choose Registered ActiveXControls and then choose Calendar Control8.0.

Step 5: Use the dialog editor to create a new dialog resource.Choose Resource

from Visual C++’s Insert menu, and then choose Dialog and create the dialog.

Step 6: Change the id of the newly created dialog as IDD_ACTIVEXDIALOG

and also change the dialog caption to ActiveXDialog. Accept the

default OK and Cancel buttons with the IDs IDOK and IDCANCEL.

Step 7 Modify the id of all the controls in the dialog box. Add the id of the controls

in the dialog.

Page 39: 90983596 Visual Programming Lab Manual

CONTROL ID

Calendar control IDC_CALENDER1

Select Date IDC_SELECTDATE

Edit Control IDC_DAY

Edit Control IDC_MONTH

Edit Control IDC_YEAR

Step 8: Use ClassWizard to create the CActiveXDialog class for the newly

created Dialog box. Select class wizard from the view menu and

press ok to create new dialog class as CActiveXDialog.

Step 9: Click on the ClassWizard Message Maps tab and then add

the message handler functions.

ObjectID Messages Member Function

CActiveXDialog WM_INITDIALOG OnInitDialog

IDC_CALENDAR1 New Month OnNewMonth

IDC_SELECTDATE BN_CLICKE OnSelectDate

IDC_NEXTWEEK BN_CLICKED OnNextWeek

IDOK BN_CLICKED OnOk

Step 10: Use ClassWizard to add data members to the CActiveXDialog

class.Add the datamembers in the CActiveDialog class.

Step 11: Edit the ActiveXDialog the file and add the m_varValue and

m_BackColor data members.

COleVariant m_varValue;

unsigned long m_BackColor;

Page 40: 90983596 Visual Programming Lab Manual

Step 12: Initialize the m_BackColor value in ActiveDialog.h.

Step 13: Edit the message handling functions OnInitDialog,onn new

Month Calendar1,OnSelectDate,OnNextWeek and OnOK in

Active Dialog.cpp file.

Step 14: Add the message handler for the view class for displaying the dialog box

on the view window when the user presses the left mouse button.

Use ClassWizard to map the WM_LBUTTONDOWN message and then

edit the handler function.

Step 15: Edit the virtual OnDraw function and include the

file #include”ActiveXDialog.h” in the file ActiveXControlsView.cpp.

Step 16: Build the application and run the project so that the following window

appears after we press the left mouse button on the view window and

then give the values of day, month and year inside the edit box and then

click the select date button so that it is selected in the calendar control.

Page 41: 90983596 Visual Programming Lab Manual

CODING:

Activexdialog.h

// Dialog Data

//{{AFX_DATA(CActivexDialog)

enum { IDD = IDD_ACTIVEXDIALOG };

CCalendar m_calender;

short m_sDAY;

short m_sMONTH;

short m_sYEAR;

//}}AFX_DATA

COleVariant m_varValue;

unsigned long m_BackColor;

// CActivexDialog ActivexD ialog .cpp

CActivexDialog::CActivexDialog(CWnd* pParent /*=NULL*/)

: CDialog(CActivexDialog::IDD, pParent)

{

//{{AFX_DATA_INIT(CActivexDialog)

m_sDAY = 0;

m_sMONTH = 0;

m_sYEAR = 0;

//}}AFX_DATA_INIT

m_BackColor=0x8000000F;

}

BOOL CActivexDialog::OnInitDialog()

{

CDialog::OnInitDialog();

m_calender.SetValue (m_varValue);

return TRUE;

}

void CActivexDialog::OnNewMonthCalendar1()

{

Page 42: 90983596 Visual Programming Lab Manual

AfxMessageBox("EVENT:ActiveXDialog::OnNewMonthCalender1");

}

void CActivexDialog::OnSelectdate()

{

CDataExchange dx(this,TRUE);

DDX_Text(&dx,IDC_DAY,m_sDAY);

DDX_Text(&dx,IDC_MONTH,m_sMONTH);

DDX_Text(&dx,IDC_YEAR,m_sYEAR);

m_calender.SetDay (m_sDAY);

m_calender.SetMonth(m_sMONTH);

m_calender.SetYear(m_sYEAR);

}

void CActivexDialog::OnNextweek()

{

m_calender.NextWeek ();

}

void CActivexDialog::OnOK()

{

CDialog::OnOK();

m_varValue=m_calender.GetValue ();

}

ACTIVEXCONTROLVIEW.CPP

#include "ActiveXDialog.h"

// CActivexControlView message handlers

void CActivexControlView::OnLButtonDown(UINT nFlags, CPoint point)

{

CActivexDialog dlg;

dlg.m_BackColor=RGB(255,251,240);

COleDateTime today=COleDateTime::GetCurrentTime();

Page 43: 90983596 Visual Programming Lab Manual

dlg.m_varValue=COleDateTime(today.GetYear(),today.GetMonth(),today.GetDay(),

0,0,0);

if(dlg.DoModal()==IDOK)

{

COleDateTime date (dlg.m_varValue);

AfxMessageBox(date.Format("%B %d %y"));

}

}

// CActivexControlView drawing

void CActivexControlView::OnDraw(CDC* pDC)

{

CActivexControlDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDC->TextOut (0,0,"Press the Left Mouse Button Here");

}

Page 44: 90983596 Visual Programming Lab Manual

OUTPUT:

RESULT:

Page 45: 90983596 Visual Programming Lab Manual