|
Hi everyone
What I have is a vb program that I am converting to visual C++
iv done most of the convert but am having a problem with this one. All I want to do is when my VC++ program runs that it show the current
Month Day Year in seperate boxes here is the vb code.
Public Sub today()
'Get today's date from system
Dim currentdate, tempDay, tempMonth, tempYear As String
Dim tempDate As String
Dim location, StrLen As Integer
Dim convert_month As String
tempDate = Date$
tempMonth = Month(CDate(tempDate))
tempDay = Day(CDate(tempDate))
tempYear = Year(CDate(tempDate))
currentdate = tempMonth & "/" & tempDay & "/" & tempYear
StrLen = Len(currentdate)
location = InStr(currentdate, "/")
txtMonth.Text = Left(currentdate, location - 1)
convert_month = Convert_Date_Int2Str(txtMonth.Text)
txtMonth.Text = convert_month
currentdate = Right(currentdate, StrLen - location)
location = InStr(currentdate, "/")
txtDay.Text = Left(currentdate, location - 1)
currentdate = Right(currentdate, 2)
If (CInt(currentdate) < 90) Then
txtyear.Text = "20" & currentdate
Else
txtyear.Text = "19" & currentdate
End If
'
End Sub
any help is appreciated
|
|
|
|
|
If I understand this correctly, you just want to grab the current time and display it in edit boxes.
To display the entire date in a single box:
(editcontrolstring is the CString variable associated with the edit box.)
CTime tDate = CTime::GetCurrentTime();<br />
CString strDate = tDate.Format( "%B %d, %Y" );
editcontrolstring = strDate;
Now, to break it down a little more, you can do something like this:
CTime tDate = CTime::GetCurrentTime();<br />
CString strDate = tDate.Format( "%B" );
editcontrolmonthstring = strDate;<br />
strDate = tDate.Format( "%d" );
editcontroldaystring = strDate;
And so on.
|
|
|
|
|
hiho@ll
i'm trying to hide a dialog through command line
i'm using the void OnShowWindow(BOOL bShow,UINT nStatus); event
void OnShowWindow(BOOL bShow,UINT nStatus){
if(hide)
bShow=false;
CDialog::OnShowWindow(bShow,nStatus);
}
what i want:
if the command line says the dialog should not be displayed
i set a bool variable hide=true
and (i think) every time the dialog should be displayed the OnShowWindow function is called!?
my OnShowWindow gets called one time
i set the bShow to false
and then the window is displayed
is there another event which displays the dialog window?
thx
|
|
|
|
|
try SetWindowPos().....
cheerz.....
"faith, hope, love remain, these three.....; but the greatest of these is love" -1 Corinthians 13:13
|
|
|
|
|
IS it possible to fit a dialog into a view?.
or if there is any other way to implement this requirement?
|
|
|
|
|
|
Yeah it is working thank u.but my exact requirement is
to put a multiple dialog into a view.Is it possible to fit a property sheet or tabbed control into a view.
|
|
|
|
|
Dear all,
I have 2 constructors of the same class:
CTest(){i = j = 0;};
CTest(int t){j = t;};
It is possible to call the first constructor in the second constructor?
Of course, I can make an Initialize() method and I can call it in the both constructors.
Thank you.
|
|
|
|
|
yes u can call one constructor from an another constructor.....
class xyz
{
.....
....
...
..
.
xyz()
{
i
}
xyz(int j)
{
xyz();
..
.
}
};
"faith, hope, love remain, these three.....; but the greatest of these is love" -1 Corinthians 13:13
|
|
|
|
|
|
Sorry, but that link is not correct. at least not completely.
The way to call one constructor from another is to use "placement new".
For example:
Foo::Foo()
{
int i;
new (this)Foo(i); // this will call the Foo::Foo(int) ctor without allocating memory
}
Foo::Foo(int)
{
}
This begs the question of why you want to do this. If it is for "common" initialization code, the better answer is to have a separate initialization function, as in the following. Then call that init code either from each ctor, or perhaps better, to call it from the places where Foo is constructed. then maybe handle init failures there.
bool Foo:init(some parameters here maybe)
{
// do init code here
}
|
|
|
|
|
Actually, you can call a constructor from the object itself. A constructor is just another function/method, but is called by the memory allocation scheme (IE: Operator new).
You can also call the destructor any time you want, as a standard object method (EX: pMyObj->~MyObject(); ).
Why would you want to do this? Consider the following: You want to allocate memory dynamically in a busy, multithreaded environment. Therefore, you want to avoid the heap. So, you decide dynamically allocate memory from the stack using _alloca(). In order to initialize this "object", you need to call the constructor. Also, when you are finished with this object, you MUST NOT "delete" it, but you should destroy it properly by calling the destructor.
A non-tested example for thought purposes:
#define STACK_OBJECT_NEW(c, p) {p = (c *)_alloca(sizeof(c)); if (p) p->c(); }
#define STACK_OBJECT_DELETE(c, p) {if (p) p->~c(); }
void MyFunc()
{
MyClass *p = NULL;
STACK_OBJECT_NEW(MyClass, p);
if (p)
{
p->InvokeSomeMethod();
...
STACK_OBJECT_DELETE(MyClass, p);
}
}
onwards and upwards...
|
|
|
|
|
We all know now that you are a guru. But keep the hack to yourself next time!
|
|
|
|
|
you don't like my "hack"?
onwards and upwards...
|
|
|
|
|
ahz wrote:
The way to call one constructor from another is to use "placement new".
This is incorrect.
Herb Sutter - the current chairman of the C++ standards committee described this 'anti-idiom' as 'an abomination' and 'abhorrent' in the article 'delegating constructors' C/C++ Users Journal May 2003. For any data members that are not POD, this approach will fail, because the destructor of that data members will run only once, while the constructors will have run twice
To the initial poster. The only way to solve this problem is with an initialization function, but you must also ensure that that function is not virtual.
|
|
|
|
|
It may be frowned upon, and may even be abhorent, but is it not incorrect.
The original poster asked a simple direct technical question and I gave a simple direct techinically correct answer.
It is correct C++ syntax, it is technically correct, and it works --- albeit for simple cases.
I wouldn't use it, and don't recommend it --- for Herb Sutters reasons --- and for many of my own reasons that I won't belabor here.
However, I agree the best way to solve the issue is with an initialization function. However, I don't think it necessarily needs to be non-virtual. Depends on where you are calling the function from. If from the ctor, then yes make sure it's non-virtual. If from outside the ctor (the method I recommend, then it's ok to be virtual).
|
|
|
|
|
ahz wrote:
It may be frowned upon, and may even be abhorent, but is it not incorrect.
The original poster asked a simple direct technical question and I gave a simple direct techinically correct answer.
Wrong, wrong, wrong
From: http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.3[^]
<quote>
"BTW do NOT try to achieve this via placement new. Some people think they can say new(this) Foo(x, int(x)+7) within the body of Foo::Foo(char). However that is bad, bad, bad. Please don't write me and tell me that it seems to work on your particular version of your particular compiler; it's bad. Constructors do a bunch of little magical things behind the scenes, but that bad technique steps on those partially constructed bits. Just say no."
|
|
|
|
|
I guess you can't read.
It is correct.
Whether you should do it is another thing altogether.
LEARN TO READ!
|
|
|
|
|
I would recommend going the way of the Initialize() method. It will make your code much easier to debug two years from now on a late, dark, rainy night with a customer expecting a bug fix early the next morning.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
I'm looking for something like "End process tree" form task manager.
I start an application using ShellExecuteEx. I have its handle and TerminateProcess works just fine, however aplication starts its own processes which remain. Sending WM_QUIT message doesn't work at all. Question is how can I kill whole process tree?
I don't care about proper shutwown, so even "brute force" metods will do fine.
thanks for any help
|
|
|
|
|
How i Hack registry Files
Plz Help me Friends
I m working on a application Registry Hacking i read all values from Registry Files into diffrent Data structures like regf, hbin, cellData(nk,vk,sk,lf,li) in these dataStructures but still i dont know how i interpret these values in understandable or readable format
if any one know abt that plz help me
shahzad Ahmed
shahzi77@yahoo.com
I Develope On Software on Netmeeting Com API in this i have Problem is When i am Dial a Call Using Following Line of Code
ULONG ulOptions=M_INIT_CONTROL;
HRESULT Initialize(ULONG *uOptions,ULONG *Reserved);
After Some Line of Code
When I Call the Following Line in our Code
INmManager::CreateCall(INmCall**ppCall,NM_CALL_TYPE callType,NM_ADDR_TYPE uType, BSTR bstrAddr, INmConference
pConference);
then the Netmeeting Dialing Progress bar are Visible on the Screen i want that bar was not
|
|
|
|
|
How i Hack registry Files
Plz Help me Friends
I m working on a application Registry Hacking i read all values from Registry Files into diffrent Data structures like regf, hbin, cellData(nk,vk,sk,lf,li) in these dataStructures but still i dont know how i interpret these values in understandable or readable format
if any one know abt that plz help me
shahzad Ahmed
shahzi77@yahoo.com
I Develope On Software on Netmeeting Com API in this i have Problem is When i am Dial a Call Using Following Line of Code
ULONG ulOptions=M_INIT_CONTROL;
HRESULT Initialize(ULONG *uOptions,ULONG *Reserved);
After Some Line of Code
When I Call the Following Line in our Code
INmManager::CreateCall(INmCall**ppCall,NM_CALL_TYPE callType,NM_ADDR_TYPE uType, BSTR bstrAddr, INmConference
pConference);
then the Netmeeting Dialing Progress bar are Visible on the Screen i want that bar was not
|
|
|
|
|
What do you mean by "hack the registry?" If you want to read from or write to the registry, why not use the intended functions?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi,
I'm trying to display the icons of some folders in a ListCtrl and it's all ok except the first icon. This one appears with a black shadow and the rest are displayed correctly.
My code is this:
HIMAGELIST hList = ImageList_Create(32,32, ILC_COLOR32|ILC_MASK , 0, 100);
m_ImageList.Attach(hList);
m_ImageList.SetBkColor(ILD_TRANSPARENT);
for (i=0;i<num;i++)
{
SHGetFileInfo(path, FILE_ATTRIBUTE_NORMAL, &shfileinfo, sizeof(shfileinfo), SHGFI_DISPLAYNAME|SHGFI_ICON);
m_ImageList.Add(shfileinfo.hIcon);
m_listFile.SetImageList(&m_ImageList, LVSIL_NORMAL);
lvi.mask = LVIF_IMAGE | LVIF_TEXT;
lvi.iItem = i;
lvi.iSubItem = 0;
lvi.pszText = shfileinfo.szDisplayName;
lvi.iImage = i;
::DestroyIcon(shfileinfo.hIcon);
m_listFile.InsertItem(&lvi);
}
Does anybody know why occurs this?
Thanks in advance!
|
|
|
|
|
Mr DAVID CROW
IS IT NECESSARY TO WRITE Extern"C" IN THE DEFINATION OF A FUNCTION(EXPORT FUNCTION) IN A DLL EXTENSION MFC.ACCORDING TO ME IT IS MEANINGLESS AS THESE DLLS CAN ONLY BE USED BY MFC APPLICATION.
TO MY PREVIOUS QUERY U SENT ME A MAIL.BUT I DELETED THAT MESSAGE.IF U DONT MIND CAN I GET UR EMAIL ADDRESS.PLS SENT THE ANS TO MY PREVIOUS QUERY.IT WAS,USING CREATEPROCESS() CAN I DO SILIENT SETUP OF .EXE FILE.I DOWNLOADED A WINZIP FILE USING URLOPEN()AND THEN RUN THE PROGRAM USING CREATE PROCESS().IT IS SHOWING ME THE SETUP OF WINZIP.I WANT TO HIDE THIS SETUP FROM USER.
|
|
|
|
|