|
Hi,
Sounds like you have a dialog with the OK button as BS_DEFPUSHBUTTON style.
You can use the PreTranslateMessage virtual function to do whatever it is you want to do, e.g.
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
BOOL bEatMsg = FALSE;
if (pMsg && pMsg->message == WM_KEYDOWN)
{
if (pMsg->hwnd == m_ctrlEditBox.GetSafeHwnd())
{
switch (pMsg->wParam)
{
case 13:
bEatMsg = TRUE;
break;
}
}
}
return bEatMsg?TRUE:CDialog::PreTranslateMessage(pMsg);
}
Hope this helps,
Andy
|
|
|
|
|
Thanks Andy that worked a treat.
|
|
|
|
|
sweep123 wrote:
I have a edit box which when I set the focus will allow the user to enter text. But when the
Enter or Return key is pressed the program terminates.
I have set the property to Want Return.
Is the ES_MULTILINE style also being used?
sweep123 wrote:
How do you stop the Enter/Return key terminating the program?
Read here.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
The Multi-line was set to false.
If set that to true would that have sorted out the problem?
|
|
|
|
|
sweep123 wrote:
If set that to true would that have sorted out the problem?
That's ultimately up to you to determine. All I can do is suggest what the docs indicate, namely that when a multiline edit control is in a dialog box, the default response to pressing the ENTER key is to activate the default button. To use the ENTER key as a carriage return, use the ES_WANTRETURN style.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Thanks for the info.
One effect I have with the use of the Edit Box is that if the user presses the Tab key when the Edit Box has focus then that is taken as an Enter key press.
This is with the Tabstop set to both true or false.
Note I set the Edit Box to read only until data input is expected, then its set to false and back again to true following the data entry.
|
|
|
|
|
sweep123 wrote:
One effect I have with the use of the Edit Box is that if the user presses the Tab key when the Edit Box has focus then that is taken as an Enter key press.
This is with the Tabstop set to both true or false.
This is not normal (i.e., default) behavior, unless you are doing something special with the VK_TAB key.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Hi geeks,
Please tell me when to use a MACRO and when to use an INLINE FUNCTION in C++. If this question has been asked before, please point me to that link.
I need an answer comparing the two. Please dont post definitions of macro and inline function as i am aware of them. Please give the answer in terms of efficiency, speed, code-size, pre-compilation/post-compilation, and things like that.
And please give examples ...
...Avenger
Remember... testing & debugging are always part of programming ...so exterminate those stinking bugs
|
|
|
|
|
always use inline ( or ordinary methods ).
the only reason I can give is that macros are preprocessor stuff and are not "debuggable"
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Maximilien wrote:
the only reason I can give is that macros ... are not "debuggable"
That should be reason enough. Very few things should exist as a preprocessor macro. The ability to type-check parameters is a must.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
My general rule is that if it can be done as an inline function, it should be.
There are some things which cannot be done with an inline function, but can be done with a macro. Those are rare, though.
|
|
|
|
|
avenger_sb25 wrote:
Hi geeks,
That's a wee bit rude, don't you think?
avenger_sb25 wrote:
I need an answer comparing the two. Please dont post definitions of macro and inline function as i am aware of them. Please give the answer in terms of efficiency, speed, code-size, pre-compilation/post-compilation, and things like that.
And please give examples ...
This sounds suspiciously like you've got a take-home exam in a programming course, and you're looking for us 'geeks' to provide the answers.
I'll give you the answer to your question. My rate is $75USD/hr (you're getting the student discount, BTW), 4 hours minimum, in advance, in cash.
Software Zen: delete this;
|
|
|
|
|
Is that something you say when you dont know the answer Mr?
Anyway a proper answer would have been appreciated. I was asked this questionj at a job interview. When i will get the job, i will pay u. LOL
...Avenger
Remember... testing & debugging are always part of programming ...so exterminate those stinking bugs
|
|
|
|
|
Hi einstines,
i was asked this question at an interview:
class a<br />
{<br />
};<br />
main()<br />
{<br />
cout<<sizeof(a); <br />
}
I can obviously run the program to find the output but i need an explanation about the output.
PLEASE ANSWER: WHAT IS THE OUTPUT????
...Avenger
Remember... testing & debugging are always part of programming ...so exterminate those stinking bugs
|
|
|
|
|
i did just that in VC++
class A
{
};
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int i = sizeof(A);
cout << "Sizeof A:" << i << endl;
}
it displayed 1.
I switched to assebmly listing and the linker has generated the following code:
77: int i = sizeof(A);
004018AB mov dword ptr [i],1 <----- Notice here, the linker knew its an empty class and automatically replaced its size by 1
78:
79: cout << "Sizeof A:" << i << endl;
004018B2 mov esi,esp
004018B4 mov edx,dword ptr [__imp_?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z
004018BA push edx
004018BB mov edi,esp
004018BD mov eax,dword ptr [i]
004018C0 push eax
004018C1 mov ebx,esp
004018C3 push offset string "Sizeof A:" (004130d4)
004018C8 mov ecx,dword ptr [MSVCP60D_NULL_THUNK_DATA (00415234)]
004018CE push ecx
004018CF call dword ptr [__imp_??6std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z (004
004018D5 add esp,8
004018D8 cmp ebx,esp
004018DA call _chkesp (004014bc)
004018DF mov ecx,eax
004018E1 call dword ptr [__imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z (0041523c)
004018E7 cmp edi,esp
004018E9 call _chkesp (004014bc)
004018EE mov ecx,eax
004018F0 call dword ptr [__imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01
004018F6 cmp esi,esp
004018F8 call _chkesp (004014bc)
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
Ya, thanx for ur reply and to tell the technique to see linker output (thats a new thing i learnt)
But, why 1? is it property of the linker or a C++ standard to make size of an empty class as 1. Please tell.
...Avenger
Remember... testing & debugging are always part of programming ...so exterminate those stinking bugs
|
|
|
|
|
Never tested it on unix, but one thing im sure of, is that empty structs are forbidden if you compile the file as a c file and not as a cpp.
However while permitting generation of an empty class, the linker is forced to allocate some space for it (vtable ...) and cos its empty, sizeof just returned the minimal size reserved for a class.
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
VTable is only allocated if the class actually contains virtual functions.
The size of an empty class will always be greater than zero because two objects must not occupy the same space. (As DavidCrow pointed out)
|
|
|
|
|
avenger_sb25 wrote:
WHAT IS THE OUTPUT????
It won't be zero, as that would allow two different objects to have the same address. If sizeof(a) returned 0, then the following would be allowed:
main()
{
a a1, a2;
if (&a1 == &a2)
...
}
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
From the Standard (1.8.5)
Unless it is a bitfield, a most derived object shell have a non-zero size and shell occupy one ore more bytes of storage. Base class sub-objects may have zero size.
|
|
|
|
|
Base class sub-objects may have zero size
Can u please give a working example. I did
class p<br />
{<br />
};<br />
class q: public p<br />
{<br />
};<br />
p o1;<br />
q o2;<br />
cout<<sizeof(o1);<br />
cout<<sizeof(o2);
I get 1 in both. Thank you.
...Avenger
Remember... testing & debugging are always part of programming ...so exterminate those stinking bugs
|
|
|
|
|
how do i place a image next a menu
Clint
|
|
|
|
|
What about this[^]
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
thank you for your reply but, these examples are all part of the toolbar not nex to the toolbar.
Clint
|
|
|
|
|
huh ?
what exactly do you want ? a popup/drop down menu in a toolbar ?
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|