|
Well, it fails on an Access error. Why was not clear, but See above.
Regards,
Bram van Kampen
|
|
|
|
|
Hello all,
i know it's a newbie question but i couldn't find a replic or a sample code for such stuf.
I have a CFormView Class and a CTest Class Derived CEdit Class.
on both of them i have the OnKeyDown function, but what i want to do is to call the OnKeyDown fucnt of the deriver CEdit Class from the first one..
I declared a var with CTest var on the CFormView class and in the ONKeyDown (of the CFormView i did like this
void CMy01View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
this->cd2.OnKeyDown(nChar, nRepCnt, nFlags);
}
and here the one of the CTest Class
void CTest::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
MessageBox("Blood 2");
CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
}
All go right but when i run it nothing will happen ?? how could i fix it ?? Thnk you
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
Did you add ON_WM_KEYDOWN to your CEdit derived classes message map?
Did you use DDX_Control to bind the edit control in the dialogue template to the instance of CTest in your Form View? I've just realised I didn't mention this when I suggested you implement a derived class of CEdit.
Cheers,
Ash
PS: I know this is complicated, hang in there!
|
|
|
|
|
Please dont remove/delete your messages once you think they have been answered - leaving them posted means someone else can read them to see if they have the same or similar problem as yours
(I noticed you deleted an earlier one)
'g'
|
|
|
|
|
@ Garth: Sorry for deleting the message, i thought it was like in other forums when it's solved we may delete it to avoid the dump.
@ Aescleal: I found a wasty manner to solve my prob (OnKeyDown related) which is
void CSdiView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if((nChar<=0x30)&& (nChar>= 0x39))
AfxMessageBox("Number");
CFormView::OnKeyDown(nChar, nRepCnt, nFlags);
}
BOOL CSdiView::PreTranslateMessage(MSG* pMsg)
{
BOOL bHandleNow = false;
switch (pMsg->message)
{
case WM_KEYDOWN:
switch (pMsg->wParam)
{
case 0x39:
case 0x38:
case 0x37:
case 0x36:
case 0x35:
case 0x34:
case 0x33:
case 0x32:
case 0x31:
case 0x30:
bHandleNow = TRUE;
break;
}
if (bHandleNow)
OnKeyDown(pMsg->wParam, LOWORD(pMsg->lParam), HIWORD(pMsg->lParam));
break;
}
return bHandleNow;
}
but i m only able to detected Numbers and Upper Cases Letters like A-Z and no a-z (another problem but at least i was able to detetect numbers an capital letters
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
Hi
I have been searching the forum for a while now, but haven't found an answer for my question.
When I write code in C++, I seperate methods and such with blank lines. Thus dividing them into logical groups.
Well I do this in every language I write code in, but C++ is giving me a hard time with this. When I collapse the methods, it will also include my blank lines. I know I can use regions to do this, but since C# and VB do not have this behavior, I was wondering. Is this a certain setting in Visual studio or is het just a crappy way of making the layout? I'm using the express by the way.
Thanks in advance
Steven
|
|
|
|
|
Steven Solberg wrote: When I write code in C++, I seperate methods and such with blank lines. Thus dividing them into logical groups.
Same here, except I use a commented row of '=' characters.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
I use (have used) express editions of VC++ 2005, 2008 and now 2010 and none of them exhibit the behaviour you describe (if I understand correctly). If I have a method followed by a blank line, when I collapse the method the blank line is still visible.
It's time for a new signature.
|
|
|
|
|
|
This does not make a difference to the compiler, but it is easier to understand code when you look at it later on.
Like I said; I use blank lines to make the code look more logically grouped. I do use regions as well, but I don't like the hassle of having a bunch of regions nested in each other. Typically, when my screen gets too small to view all the code that belongs together I start inserting regions.
Example:
//Methods in a menu
private void btn1_onclick...
{
}
private void btn2_onclick...
{
}
private void btn3_onclick...
{
}
//Other methods or functions
private void someMethod1...
{}
private void someMethod2...
{}
edit: Oops... I'm still thinking C# lately, just act like this is correct C++ code :p
|
|
|
|
|
Bram van Kampen wrote: Who cares how I separate them!
I certainly don't; I was responding to someone else's question.
It's time for a new signature.
|
|
|
|
|
Hi All
How can i create database in ms access?Please help me
|
|
|
|
|
Within Access, click New from the File menu.
Programmatically, you can use Access' COM interface (i.e., automation).
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
How do I submit my code. I submitted a source code through submit@codeproject.com but till now I have not seen it. Is there any other way it is submitted?
|
|
|
|
|
Dan_K wrote: How do I submit my code.
Did you read here?
Dan_K wrote: I submitted a source code through submit@codeproject.com but till now I have not seen it.
It takes a few days for the editors to get to it.
Dan_K wrote: Is there any other way it is submitted?
Use the Wizard, Luke.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
submit for what ? an article ? or for a question in the different forum ?
Watched code never compiles.
|
|
|
|
|
It's a complete code submittes as an article.
|
|
|
|
|
When did you submit? You should get an email fairly quickly when one of the editors gets to look at it. Sometimes there are lots of articles on the queue so it may take some time.
It's time for a new signature.
|
|
|
|
|
Can anyone help me in getting event messages from an API to C++ DLL?
It is working fine with an Windows Application but I want to make a dll for this purpose.
What should I mention in BEGIN_MESSAGE_MAP?
Ayaz ul Hassan
|
|
|
|
|
|
That key handler (provided you've got a message map entry for it) will only trap key downs for the form view. The edit control is a different window.
Your choices here are:
- find a WM_COMMAND from the edit control that does what you want and handle that in the form view
- derive a class from CEdit and reflect messages from the form view into the control. Do a search for MFC message reflection to see how this works.
(This[^] isn't too bad about message reflection but it might be out of date).
Cheers,
Ash
|
|
|
|
|
i did add the WM_KDOWN but still nbothing happen when i press a key. I tried it with an application Based on CEditView and it works.
It seems a prob with The FormView Class
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
Isn't CEditView "just" and edit control? Any messages from the edit control will be processed by the CEditView.
An edit control on a form view has an additional window involved. Key down message will be processed by the edit control and not the form view.
Cheers,
Ash
|
|
|
|
|
Ok, what u said is great and means that my edit control, normally, can implement the OnKeyDow function even if my form is CFormView Class. but based on my code (first message) nothing is happening.
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
Yep, but your code for the handler is in your CFormView overide, not in a CEdit override.
What I'd do is...
- Derive a class from CEdit
- Add ON_WM_KEYDOWN to its message map
- Implement OnKeyDown
Snip, snip, Bob's yer Aunty.
Cheers,
Ash
PS: If you do implement it this way remember to call CEdit::OnKeyDown to allow the normal window procedure to handle the keystroke otherwise you'll cripple the behaviour of the edit control.
|
|
|
|