|
It will show compilation error unless my_ptr1 is void*. Suppose my_ptr1 is defined as
int* my_ptr1;
Then you should write is as
my_ptr1 = (int*)((int)psa + 0x00000224 );
|
|
|
|
|
|
I prefer to cast the pointer to a pointer pointing to
a byte-sized type - that way the code is portable to 64-bit
(Naveen's code will fail in 64-bit builds)...
my_ptr1 = (int*)((char*)psa + 0x00000224 );
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Dear All
In a small project I instantiate a non modal window by following code snippet :
sheet->Create (NULL,-1,0 );
sheet->ShowWindow(SW_SHOW );
Then I set a timer , which I want to monitor the "sheet" windows when closed.
Thus I want to implement a monitoring mechanisem in timer routine in order to be aware of close time of sheet window.
How Can I do this?
Regards
Mahdi
|
|
|
|
|
Hello,
you can close the non-modal dialog by calling CWnd::DestroyWindow[^] function.
Best regards,
Mihai Moga
|
|
|
|
|
Gut Mikh Tappe wrote: Then I set a timer , which I want to monitor the "sheet" windows when closed.
What I understood is that - you want to check whether the sheet window is closed from your timer routine? A few suggestions are below,
1) You could call IsWindow() by passing the handle of dialog. If the window specified by handle doesn't exist, the api will return failure. The first question that comes to mind will be - What happen if the handle will be resued by any other window created in between? Not a real concern. Read this[^].
2) You could send a WM_NULL message to the window. If the send function failed, then your window is RIP!
3) But the best method is - instead of polling, let the sheet window notify you when it closes. Handle the WM_DESTROY message in your sheet dialog and send a message to your parent window.
Did i explained too much details?
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
Thank you
Your help is great
I can overcome the problem.
Thanx again
|
|
|
|
|
Jijo raj wrote: http://weseetips.com[^] Visual C++ tips and tricks. Updated daily.
Cool Site!!!!
"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/xml>
|
|
|
|
|
can you change little architecture of your program, why can't non-modal dialog box notify parent dialog box.. when it closed!
"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/xml>
|
|
|
|
|
Hi,
Can someone point out an easy way to detect at a given moment if the current input language is Right to Left?
Thanks,
Moshe
|
|
|
|
|
|
How do I extract a part of my char*text
this is the function i would like to know if exists:
extract???(to char*,from char*,from int start,to int end)
if so, please whats its name and how do I use it?
char*text="hi how r u";
char*text2;
extract(text2,text,3,6);
Then text2 would be: "how"
Thanks.
|
|
|
|
|
Something like substr ?
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
|
It's been a while since I've done a lot of C++, more C# these days
Isn't there something like strstr?
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
yea, but i cant understand how it works, i mean they ask you for chars instead of ints I don't know how can i use it for doing this work.
|
|
|
|
|
I see what you are trying to do. Let me take a look here
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
Have you looked at strncpy[^]?
That might be your ticket. Have the source string be the third character in your main string, and the length be the 5 - 3 + 1 = 3. Something along those lines.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
Thanks it looks like the strncpy would work fine. but i have a problem
i have this:
char startup[MAX_PATH];
strcpy(startup, _pgmptr);
char startupnew[MAX_PATH];
strncpy(startupnew,startup,(int)(strstr(startup,"myapp.exe")-startup));
What i wanted to do was taking my app's startup path with the filename thing 'myapp.exe'. So i did this but the problem is that now startupnew, which is what i want is like: C://user/ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ until completing the MAX_PATH, but you know in a general case I wont know the actual length of the startup path. So what can i do in this case.
I want to delete this ÌÌÌÌÌÌÌÌÌÌÌ-thing.
|
|
|
|
|
letueros wrote: Thanks it looks like the strncpy would work fine.
Except it is not C++. If you are using a string object, it has the appropriate method(s).
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
What about std::string substr() function?
string substr( size_type index, size_type length = npos );
std::string i_am_a_string = "hi how r u";
std::string i_am_another_string = i_am_a_string.substr(3, 3);
Hope it helps!
|
|
|
|
|
oh, almost forgot:
char* i_am_a_char_pointer = i_am_another_string.c_str();
|
|
|
|
|
You could use CString::Mid()[^] also. See the code snippet.
CString csString = "hi how r u";
CString csExtracted = csString.Mid( 3,
3 );
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
Hey everybody!
I wrote an application that performs global hooking on WH_GETMESSAGE to get clipboard hooking.
Now, I know that application doesn't have to use WM_PASTE while pasting, but I'm trying to get what I can with that.
The problem is that I'm getting WM_PASTE from Notepad, but not from anywhere else!
I read in a different forum that WordPad also uses WM_PASTE for pasting, but it doesn't seem to work in my case.
I also read that it is better hook WH_CALLWNDPROC than WH_GETMESSAGE to WM_PASTE, but when I'm hooking WH_CALLWNDPROC, I am not getting any WM_PASTE messages, not even from notepad.
Anyone have any ideas why I'm not getting WM_PASTE from WordPad (or any windows controls, like pasting to the "run" window) ???
Thanks a lot for your help!!!!!
|
|
|
|
|
Green Fuze wrote: I also read that it is better hook WH_CALLWNDPROC than WH_GETMESSAGE to WM_PASTE, but when I'm hooking WH_CALLWNDPROC, I am not getting any WM_PASTE messages, not even from notepad.
I just tried WH_CALLWNDPROC and it is working fine in the case of wordpad also. Can you paste the hook procedure you wrote...??
Why you want to hook paste operation??? Also in all case WM_PASTE need not to come such as a pate operation in a custom created window.
|
|
|
|