<<
Think man! Have you told us anything that would be useful in helping you? No!
Post some code.. or post the whole project (zipped and hosted somewhere). That would be a start. >>
Here's the main section:
GregorianClass Greg, Orian;
JulianClass Jules, Verne;
char buffer[255];
LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HINSTANCE hInst;
HDC hDC;
PAINTSTRUCT ps;
switch(msg)
{
case WM_PAINT:
hDC = BeginPaint(hWnd,&ps);
Greg.setYear(2345); //Debug
wsprintf(buffer,"The Gregorian Date is: %02d/%02d/%04d",Greg.getMonth(),Greg.getDay(),Greg.getYear());
TextOut(hDC,10,10,buffer,strlen(buffer));
wsprintf(buffer,"The equivalent Julian Date is: %04d%03d",Verne.getYear(),Verne.getDay());
TextOut(hDC,10,30,buffer,strlen(buffer));
wsprintf(buffer,"The Julian Date is: %04d%03d",Jules.getYear(),Jules.getDay());
TextOut(hDC,10,60,buffer,strlen(buffer));
wsprintf(buffer,"The equivalent Gregorian Date is: %02d/%02d/%04d",Orian.getMonth(),Orian.getDay(),Orian.getYear());
TextOut(hDC,10,80,buffer,strlen(buffer));
EndPaint(hWnd,&ps);
break;
case WM_CREATE:
hInst = ((LPCREATESTRUCT)lParam)->hInstance;
break;
case WM_COMMAND:
switch(wParam)
{
case GREGORIAN:
DialogBox(hInst,"GregorianDlg",hWnd,GregorianProc);
Verne = Greg;
InvalidateRect(hWnd,NULL,TRUE);
break;
case JULIAN:
DialogBox(hInst,"JulianDlg",hWnd,JulianProc);
Orian = Jules;
InvalidateRect(hWnd,NULL,TRUE);
break;
case EXIT:
PostQuitMessage(0);
break;
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc (hWnd, msg, wParam, lParam));
}
return 0L;
}
BOOL CALLBACK GregorianProc(HWND hDlg,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
return TRUE;
break;
case WM_COMMAND:
switch(wParam)
{
case IDOK:
GetDlgItemText(hDlg,MONTH,buffer,strlen(buffer));
Greg.setMonth(atoi(buffer));
GetDlgItemText(hDlg,DAY,buffer,strlen(buffer));
Greg.setDay(atoi(buffer));
GetDlgItemText(hDlg,YEAR,buffer,strlen(buffer));
Greg.setYear(atoi(buffer));
EndDialog(hDlg,NULL);
break;
case IDCANCEL:
EndDialog(hDlg,NULL);
break;
}
break;
default:
return FALSE;
}
return TRUE;
}
BOOL CALLBACK JulianProc(HWND hDlg,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
return TRUE;
break;
case WM_COMMAND:
switch(wParam)
{
case IDOK:
GetDlgItemText(hDlg,JULIANBOX,buffer,strlen(buffer));
MessageBox(hDlg,buffer,"Hello",MB_OK);
EndDialog(hDlg,NULL);
break;
case IDCANCEL:
EndDialog(hDlg,NULL);
break;
}
break;
default:
return FALSE;
}
return TRUE;
}
That's pretty much the entire program except for window creation code.
Heres the classes I wrote:
class JulianClass;
class GregorianClass
{
int month, day, year;
public:
GregorianClass(){month=1; day=1; year=1900;}
GregorianClass(GregorianClass &x){month = x.getMonth(); day = x.getDay(); year = x.getYear();}
int getMonth(){return month;}
int getDay(){return day;}
int getYear(){return year;}
void setMonth(int x){month = x;}
void setDay(int x){day = x;}
void setYear(int x){year = x;}
operator JulianClass();
};
class JulianClass
{
int year, day;
public:
JulianClass(){year=1900; day=1;}
JulianClass(JulianClass &x){year = x.getYear(); day = x.getDay();}
void setYear(int x){year = x;}
void setDay(int x){day = x;}
int getYear(){return year;}
int getDay(){return day;}
operator GregorianClass();
};
This is program is suppose to demonstrate data conversion between two objects.