|
Thanks Richard,
Sorry for the delay, work has been interrupted for a few days due to a beravement in the family.
Well, I have the latest SDK for Windows XP. I see your point about the Down Level MFC Lib. However, I had also thought that actions such as :;Get/SetWindowLong, and ::SendMessage() would bypass MFC in it's entirety. Iow, what I wrote is actually an SDK implementation of the MFC 'SetMarquis()' Function. Afterall, it is the binary code contained in User32.dll etc. that does the actual displaying. MFC is simply a wrapper around the SDK Code, which accesses those system DLL's. Another possibility is one of those 'Stare in the Face' bugs, that take a week or more to find, which turn out to be a small but vital typo.
As said before, it is a Level 5 Bug (Purely Cosmetic). My installer App will Not Stand or Fall with it, at the sametime, it would be interesting to see 'Why' it does not work, if, as you said, The Code looks Fine.
N.B.
(MFC is in my opinion a Very Convenient wrapper. Remember the Man in the late 1980's (Whose Name I've forgotten, who was the Authority on Win 3.1 SDK Programming?) Don't take me wrong, I'm Not dismissing MFC as trivial, but that's what it does. MFC does not Create and Paint Windows, that SDK does not support. I'm not saying it Can't be done, but as I understand it, for Product Development Reasons, MS is unlikely to go that way. Otherways what would be the point in releasing an SDK.)
Regards,
Bram van Kampen
|
|
|
|
|
Hi Bram,
I am stupid, you need to specify to the system that you want the latest level UI controls. I add the following #pragma to my main cpp source module:
#pragma comment(linker, "\"/manifestdependency: \
type='win32' \
name='Microsoft.Windows.Common-Controls' \
version='6.0.0.0' \
processorArchitecture='*' \
publicKeyToken='6595b64144ccf1df' \
language='*'\"")
You can also add it to the Linker Properties somewhere. Give it a try and see what happens.
BTW I think the name you are looking for is Charles Petzold[^], he's still writing useful books.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Hi,
Set the Marquee property to "True".
Regards,
Satheesh
|
|
|
|
|
Satheesh1546 wrote: Set the Marquee property to "True".
Hi,
Well, that would be the obvious thing to do, if I could do it. My MFC Implementation has no such property, because it is (atmittedly) a bit long in the tooth.
Apart from that, there is no mention of any such property that I could find, in the MFC Online Documentation.
But, if you have any further Info or Refs on this, Please let me know.
Thanks
Bram
Bram van Kampen
|
|
|
|
|
Is there an equivilent to the DateTime.Now() in asp.net, I'm writing a time stamp to sql server, and wanted to keep the same format.
dbUA->pzDateOpened = some sort of DateTime.Now();
|
|
|
|
|
GetCurrentTime() function should work for you. [^]
Every new day is another chance to change your life.
|
|
|
|
|
I didn't understand how to make the request, but I will look into again today.
|
|
|
|
|
Hi,
You can use GetLocalTime()..
SYSTEMTIME st;
GetLocalTyme(&st);
Thanks,
Satheesh
|
|
|
|
|
Yeah I saw that, but it looks like I have to build up my Date Time with a structure or something. I didn't understand how to make the request. Perhaps I read it wrong, will look into again today.
You included a sample, will give it a spin today. Thanks.
|
|
|
|
|
According to MSDN _ftime[^] is the equivalent.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Thanks for the help Richard.
I was trying to inject the results into a datetime column in SQL via ODBC, but between the 2, it was hard to nail down the error. I didn't know if it was the format of the data, or ODBC not wanting to accept the LPSYSTEMTIME structure, or the size/precision of the data, which for some reason is 23,3.
Ended up with this for now, it works, I can modify it later if I find something better.
SYSTEMTIME systemTime;
GetSystemTime(&systemTime);
LPSYSTEMTIME lpSystemTime = &systemTime;
swprintf_s(szDateOpened,
L"%d-%d-%d %d:%d:%d",
systemTime.wMonth,
systemTime.wDay,
systemTime.wYear,
systemTime.wHour,
systemTime.wMinute,
systemTime.wSecond
);
szDateOpened[wcslen(szDateOpened)] = L'\0';
And then sent it to the ODBC Driver in another function. I just need to figure how how to create a MD5 Hash in UT8 for the Encoded Password, and then this part of the program is done.
L"INSERT INTO UserInfo(FirstName, LastName, UserName, PhraseHint, Phrase, PasswordClear, DateOpened, Email, FrontAdmin, SecurityLevel, Enabled, LastLogin) "
L"VALUES(?, ?, ?, ?, ?, ?, CAST(? as datetime), ?, ?, ?, ?, CAST(? AS datetime) )"
and parameterized the values, that one liner took all day long.
retcode = SQLBindParameter(hstmt, 12, SQL_PARAM_INPUT, SQL_C_WCHAR, SQL_VARCHAR, 23, 3, pzLastLogin, wcslen(pzLastLogin), NULL);
|
|
|
|
|
I'm afraid my SQL skills are non-existent, but I would suggest you do not store dates and/or times as text values in a database but as datetime (i.e. binary) values. The remarks section in the documentation[^] suggest how to convert it to a large integer. This seems like a lot of work just to save a simple value, but it is Microsoft.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
I casted it as datetime, in the ? mark, so sql server does the conversion. CAST(? as datetime)
I'm starting to find out that SQL Server is not that popular in c++. must be a asp.net thing. Oh well. That was easy compared to hashing the password.
|
|
|
|
|
Hi,
SYSTEMTIME st;
GetLocalTime(&st);
CString strHour, strMinute, strSecond;
strHour.Format(_T("%d"), st.wHour);
strMinute.Format(_T("%d"), st.wMinute);
strSecond.Format(_T("%d"), st.wSecond);
You can use this to get the current time. I f you need to update the time automatically.Use a timer with one second elapse time, and use this code in OnTimer().
Thanks
|
|
|
|
|
I try this[^] CControlBar, and goes very well .. into CMainFrame ... I try to implement it into CChildFrame, but has failed ... it can be dock an CControlBar ( or extended ) into CChildFrame ?
Thanks !
|
|
|
|
|
See here[^].
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
This[^] is the first solution that I've tried, but seems not working in CControlBar case ...
|
|
|
|
|
Flaviu2 wrote: but seems not working
Which means?
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
I try in this way :
protected:
CControlBarExt m_wndControlBar;
CTestDialog m_cDialog;
and
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if(CMDIChildWnd::OnCreate(lpCreateStruct) == -1)return -1;
if(! m_wndControlBar.Create(this, &m_cDialog, CString("ControlBar Demo"), IDD_DIALOG1))
{
TRACE0("Failed to create dialogbar\n");
return -1; }
m_wndControlBar.SetBarStyle(m_wndControlBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_wndControlBar.EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndControlBar);
return 0;
}
I get follow assetion failure :
ASSERT(pDockBar != NULL);
In the same way can be done CCOntrolBar in CMainFrame and goes well ...
|
|
|
|
|
Flaviu2 wrote: I get follow assetion failure :
Where? We cannot see your screen so have no way of knowing where these messages appear. Please make use of your debugger and trace what is happening in your code.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
I succeded :
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if(CMDIChildWnd::OnCreate(lpCreateStruct) == -1)return -1;
if(! m_wndControlBar.Create(this, &m_cDialog, CString("ControlBar Demo"), IDD_DIALOG1))
{
TRACE0("Failed to create dialogbar\n");
return -1; }
m_wndControlBar.SetBarStyle(m_wndControlBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_wndControlBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndControlBar);
return 0;
}
and goes well ... thank you very much for your patience. Bye.
|
|
|
|
|
dear friends, I want to take input from user as :-
f(x)= y = ax^2 + bx + c
i.e. custom function input from user then parse it and then integrate it. But I have no idea how to do ir. Please help me or suggest any book.
|
|
|
|
|
Try a Google search for "calculator c++", this is a fairly common sample exercise.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
If you want to write it, then that's a hard thing. If you just want to use it, look at:
Fast Mathematical Expressions Parser[^] here on codeproject!
Good luck,
Iain.
I am one of "those foreigners coming over here and stealing our jobs". Yay me!
|
|
|
|
|
If you try to do everything at once, it's very hard. Breaking it into steps makes it simpler:
1. Turn the expression string into a list of tokens. A token can be a variable name, an operator, or a parenthesis.
2. Turn the token list into a tree of tokens, where each operator token has child tokens of its operands.
3. Integrate the lowest-level sub-expressions, than combine them according to the operators, e.g. the integral of A + B is the integral of A plus the integral of B.
====================================
For step 2, apply two rules to your token list until you have a single operator token left in the list, representing the whole expression. (If you end up with more than one token in the list, you probably started with an illegal expression):
1. If you have the pattern: "(", [token], ")", replace it with [token], i.e. delete parenthesis tokens around a single value.
2. In the most deeply-nested parentheses, replace [token] [operator] [token] in the list with [operator], and set [operator]'s left and right child-node pointers to the two token operands. Do this for the highest-precedence operators first.
|
|
|
|
|