|
Using SendMessage api thrown from same thread to same thread is problem in itself because SendMessage api is blocking call, better use PostMessage.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
I'm not sure what you mean exactly, but using SendMessage to send a message to the same thread as the sender is fine (in fact it's the most common case).
Steve
|
|
|
|
|
ThatsAlok Using SendMessage api thrown from same thread to same thread is problem in itself because SendMessage api is blocking call
No!
The Doccumentation states clearly that SendMessage calls the WinProc immediately when called from the same thread.
This is what Windows itself does the whole time in a Single Threaded App.
Bram van Kampen
|
|
|
|
|
Bram van Kampen wrote: void CProgressDlg::_OnEndDialog(int ExitCode)
I doubt about this line. You will probably need to handle both the params from SendMessage. i.e. WPARAM, LPARAM.
Also
Bram van Kampen wrote: WM_ENDDIALOG=WM_USER+1,
Not recommended as these values are already used by windows for some other messages. But I don't think it will cause the problem you are facing.
Regards,
Sandip.
|
|
|
|
|
SandipG wrote: Bram van Kampen wrote:
void CProgressDlg::_OnEndDialog(int ExitCode)
I doubt about this line. You will probably need to handle both the params from SendMessage. i.e. WPARAM, LPARAM.
No, The use of the Params is optional. At Any rate, SendMessage lands safely at the handler. It trashes when SendMessage returns.
SandipG wrote: Bram van Kampen wrote:
WM_ENDDIALOG=WM_USER+1,
Not recommended as these values are already used by windows for some other messages. But I don't think it will cause the problem you are facing.
Well, what would you reccommend instead. It could not be the problem, because SendMessage lands at the correct Handler.
Thanks
Bram van Kampen
|
|
|
|
|
Bram van Kampen wrote: No, The use of the Params is optional. At Any rate, SendMessage lands safely at the handler. It trashes when SendMessage returns.
Yes, that is why i feel its the parameter issue. You can read more about it here[^] in the parameter counts section.
Bram van Kampen wrote: Well, what would you reccommend instead. It could not be the problem, because SendMessage lands at the correct Handler.
Also i said it is not the problem just not recommended. About this you can read here[^]
I hope it helps.
Regards,
Sandip.
|
|
|
|
|
SandipG wrote: Yes, that is why i feel its the parameter issue. You can read more about it here[^] in the parameter counts section.
Joe's essays saved my butt many times.
Kelly Herald
Software Developer
|
|
|
|
|
Humble Pie is being eaten here.
It was a Parameter issue. Entered a dummy int, and problem is gone.
It baffles me however that this does not seem to affect the Debug Mode.
Thanks to everybody for their invaluable help and Comments.
Regards,
Bram van Kampen
|
|
|
|
|
Bram van Kampen wrote: the App terminates with an Exception.
Stupid question, but does the exception give any further clues? It's some time since I used MFC but I recall that some windows need to be disposed in a different way in the desstructors.
It's time for a new signature.
|
|
|
|
|
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.
|
|
|
|