|
vicky00000 wrote: How Can i Avoid such trouble please clarify.
By not doing complex work on returning from the dialog.
There are a few choices I can think of (and millions others, I'm sure) - how useful each is depends on how long the pause is - a slightly irritating half second, or many seconds. I'm assuming it's not hoooooours.
1/ Do the work in the child dialogs OnOK window, and use CWaitCursor just before you do it. The child dialog will stick around, but it won't be a mystery.
2/ After the DoModal () returns, post a message to yourself, and do the long work in that message handler. this postpones the work until after the painting is done.
3/ After the DoModal () returns, start up a worker thread, and have that post a "I'm done" message.
Iain.
Iain Clarke appears because CPallini still cares.
|
|
|
|
|
vicky00000 wrote: What you mentioned is exactly correct.
So are you calling the second dialog's destructor explicitly (in some button handler)?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
DavidCrow wrote: are you calling the second dialog's destructor explicitly
I am not sure why calling destructor explicitly? It should never be done. In this case, dialog object is allocated on the frame and it dies when function goes out of scope; destructor is called automatically.
vicky00000:
Well, I fail to see child-parent relationship between dialogs. Both most likely are owned by main window (it could be the first dialog).
As for doing long processing, follow Iain’s advice #3. Do the background processing in a worker thread.
As for CWaitCursor, it is a legacy class from 16-bit Windows. In 32-bit it will disappear as soon as ne WM_SETCURSOR message is received. If you want to show hourglass, it is better to handle WM_SETCURSOR message and call SetCursor to change cursor for a dureation you need.
JohnCz
MS C++ MVP
|
|
|
|
|
Hi,
I draw some images using one software named as GLG. And used this images(more than 50 pages and each page contains lots og images of pump,valve etc.,) in my MFC applicaiton. I draw all images by having 1152x864 resolution in my system.And everything is OK.My application shows all pages perfectly.
Now i have new Dell system and i have resolution as 1280x960 pixels.
Now my application does not show all images.
In page 1 it shows all images,2nd page few images are missed. 3rd is Ok.then 4th only have text not images.5th one is ok.
Like this i missed some images in some images.
But i found one thing.Whatever pages which shows all images perfectly,in that all pages i use only two colors like light gray and white.
Whatever pages that doesnot show images,in that page i use multi colors like Blue,Green,Gray,black,pink etc.
May be the problem in showing colors.
Pls help me out???
In my system in display settings,the color quality i have 2 option as Medium 16bit,Highest 32 bit. I change the color quality between two but no use.
Anu
|
|
|
|
|
Are you able to see the images without your application, I mean using different viewer ?
Also there should be a third option for color quality. It is High 24 bit. Can you find it ?
|
|
|
|
|
Whats extension of files? and how did you show them?
|
|
|
|
|
Hello everyone,
Just want to confirm and ask for advice here for experts, since I met with some confusions about recent reading.
Here is my understanding,
1. const reference is lvalue;
2. non-const reference is lvalue;
3. Return of constructor is rvalue.
All correct?
thanks in advance,
George
|
|
|
|
|
if you do an assignment operation, then the value on the left is lvalue and value on the right is rvalue.
Now please clear what actually you want to ask/understood.
|
|
|
|
|
Hi NishantB,
I think the rule to judge lvalue and rvalue is whether or not it is addressable other than whether or no it could be on left side or right side of =.
You know, lvalue have modifiable and un-modifiable versions.
Any comments?
regards,
George
|
|
|
|
|
George_George wrote: You know, lvalue have modifiable and un-modifiable versions.
I know that.
If you will try to assign something to a constant say -
int i = 3;
5 = i;
It will definately give you lvalue cannot be modified error.
|
|
|
|
|
|
George_George wrote: Do you agree
"in C++, string literals are l-values." in thread http://www.velocityreviews.com/forums/t279868-what-is-lvalue.html[^]? Why?
No, that would mean something like:
"abc" = "123"; or
"myohmy" = 17; would be legal.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hi DavidCrow,
Are you sure it can compile?
#include <string>
int main()
{
"abc" = "123";
"myohmy" = 17;
return 0;
}
Compile error,
1>d:\visual studio 2008\projects\test_string2\test_string2\main.cpp(5) : error C2106: '=' : left operand must be l-value
1>d:\visual studio 2008\projects\test_string2\test_string2\main.cpp(7) : error C2440: '=' : cannot convert from 'int' to 'const char [7]'
regards,
George
|
|
|
|
|
George_George wrote: Are you sure it can compile?
Of course not. I never said it could.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
|
George_George wrote: 1. You agree string literal is rvalue?
I already did.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
|
See this
lValue
[^]
Manish Patel.
B.E. - Information Technology.
|
|
|
|
|
Thanks manish,
I do not quite understand this statement in the thread "in C++, string literals are l-values.", any comments?
regards,
George
|
|
|
|
|
did you read this stetement :
"l-values are something that can be at the right side of an '='"
It says that if we write x = 10; then x will be l-value(left side value)
In c++, we can not give number as variable name, It always be a string only.
So in C++, string literals are l-values.
Now i think you got it
Manish Patel.
B.E. - Information Technology.
|
|
|
|
|
Thanks Manish,
I am confused. You mentioned,
--------------------
l-values are something that can be at the right side of an '='
--------------------
l-value...right side? Could you confirm that?
regards,
George
|
|
|
|
|
manish.patel wrote: t says that if we write x = 10; then x will be l-value(left side value)
In c++, we can not give number as variable name, It always be a string only.
So in C++, string literals are l-values.
Your argument is wrong.
In the expression x = 10; the term x is an identifier, NOT a string literal (a string literal is, for instance, "foo" ). See [^].
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Thanks CPallini,
What do you think of whether string literal is lvalue or rvalue? I think it is only rvalue, do you agree?
regards,
George
|
|
|
|
|
George_George wrote: What do you think of whether string literal is lvalue or rvalue? I think it is only rvalue, do you agree?
Yes, of course. Did you ever see a string literal on the left of an assignment expression?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Thanks CPallini,
I agree with your reply. I am studying the link as people mention before,
http://www.velocityreviews.com/forums/t279868-what-is-lvalue.html[^]
in post #2, what do the following statements mean? Especially the additional [2] after "str" and ["str"] after 1? Any ideas?
* ( ( char * ) & var ) = "str"[2];
int & varref = var;
varref = 1["str"];
regards,
George
|
|
|
|