|
Thanks a lot, I have never worked with Vector, so It will be very interesting.
|
|
|
|
|
I want to get any process module no matter how the process launched by using CreateProcess or double clicking the *.exe file.
I know, EnumProcessModules mightbe can help me, but it will retrieve all modules(dlls included, so i will have to search what's i want), i only want to get the main module(the first instance parameter passed to WinMain entry).
Regards
|
|
|
|
|
|
In fact, i can get the process's identifier successfully. But, now, i want to get its menu use ::LoadMenu API. You you, the API need the instance of the .exe module. so, i'll have to retrieve the exe module.
And, follow your guide, i use GetModuleInformation to retrieve all the information successfully.
Thanks. All
modified on Sunday, December 28, 2008 9:51 PM
|
|
|
|
|
Is this[^] maybe what you are lookign for?
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
|
|
|
|
|
i really want to retrieve module information of the exe, i meant the parameter transferred into WinMain.
Thanks for your reply
|
|
|
|
|
Ah, sorry, i thought you only needed the name of the executable.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
|
|
|
|
|
Do you need to Enum Processes with kernel and user times[^] of course David Crow has an article about enum processes on the codeproject,too.
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
oh, sorry, i only want to get the main module of the process, not the executing time.
thanks for your reply
|
|
|
|
|
Hi, this is a question about understanding how Windows GUI internals work.
Can someone explain why overlapping controls are not supported... or what the technical limitations are. For example MSDN says in KB79981 that overlapping controls are not supported. I guess this refers only to siblings, because there should be no problems with overlapping controls when the overlapping controls are childs (e.g. a normal dialog and some controls).
What wonders me are group boxes, where the overlapping controls are on the same client-parent hierachy. The client area of a group box clearly overlaps with the enclosed controls (e.g. group box with edit boxes in a settings dialog). Are group boxes a special case?
Thanks for some help.
|
|
|
|
|
I would say group boxes are a special case, since they draw properly
even with overlapped controls.
Groupboxes are not actual controls - there isn't a groupbox control
in the Win32 control library. A groupbox is a special case of
a static control, and I would expect you won't see too many problems
overlapping controls on static controls since static controls don't
interact with the user.
As far as overlapping controls go, I'd worry more about this:
"Another consequence of having overlapping controls is that the
user of the application may be confused, because clicking the mouse
in the common area may not activate the control that the user intended
to activate."
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thanks for your feedback, Mark. I had a hard time figuring out how group boxes fit into these design limitations. The problems I have are not with user interactions (since there are none) but with redraw artefacts that occur sometimes, e.g. when moving another application window over my window.
Lessons learned: Do not overlap siblings or use WS_EX_TRANSPARENT, instead use client-parent hierarchies. Even HTML/DOM is more consistent and logical to use.
|
|
|
|
|
Moak wrote: Lessons learned: Do not overlap siblings or use WS_EX_TRANSPARENT
Yeah....transparent stuff I've found especially inconsistent with Win32
controls...one of the main reasons I've personally stopped using Win32/GDI/GDI+
for UI altogether.
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
This is the Function declaration :
int MyClass::Send (MY_STRUCT *cStruct,
void *Para1, void *Para2,
void *Para3, void *Para4, void *Para5, void *Para6)
{
......
}
But when this function is executed ,why Para1...Para6 do not appear in the function?
MY_STRUCT Querries
Send(&Querries)
Thanks
|
|
|
|
|
what do you mean, "do not appear"?
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
|
|
|
|
|
i mean why the number of parameters in the declaration and exectution is diffrent? any way, cause i don't understand why type for Para1, ...Para6 is void?
Thanks
|
|
|
|
|
I think i understand what you mean. First, what you have shown as declaration seems to be more like the definition of the method. I think what causes you confusement is that at the definition you see that the method takes 7 parameters and where it is called, only one is specified. I supose that the DECLARATION of the method either gives default values of the parameters, or there is another version of this function with only one parameter. So something like:
class MyClass
{
...
int Send(MY_STRUCT *cStruct, void *Para1=NULL, void *Para2=NULL, void *Para3=NULL,
void *Para4=NULL, void *Para5=NULL, void *Para6=NULL);
...
}
or
class MyClass
{
...
int Send(MY_STRUCT *cStruct, void *Para1, void *Para2, void *Para3,
void *Para4, void *Para5, void *Para6);
int Send(MY_STRUCT *cStruct);
...
}
For the void thing, the type of those parameters is not void but void*, void pointer. This basicly means it is a non-typized pointer.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
modified on Sunday, December 28, 2008 6:45 AM
|
|
|
|
|
what the purpose of using void pointer?
|
|
|
|
|
See CPallini's post[^]. Void pointers are "generic", if you make an "int pointer" (int *) you expect it to contain the address of an integer, if you make a "double pointer" (double *), you expect it to point at a double in memory, and so on, a void pointer can point to anything and it is "up to the context" what is done with it.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
|
|
|
|
|
Your code with this on the header file
int Send (MY_STRUCT *cStruct,
void *Para1=NULL, void *Para2=NULL,
void *Para3=NULL, void *Para4=NULL, void *Para5=NULL, void *Para6=NULL);
or like this.
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
See [^].
A void pointer (void * ) can point to anything (usually additional info about the pointed memory data type is given by a well-know argument, in your case maybe the first one).
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
[My articles]
|
|
|
|
|
what the different between string and char?
does 'char' mean character? why we have 'unsigned char' type?
Thanks
|
|
|
|
|
|
Generally, with string we mean a sequence (i.e. one or more) of characters.
In C language, char is a data type (corrensponding to a 8-bit signed integer , i.e. ranging from -128 to 127 , while an unsigned char is a 8-bit unsigned integer , i.e. ranging from 0 to 255 ), a string is, by convention, a sequence of char s zero terminated, for instance:
char c1 = 'A';
char c2 = 13;
char c3 = -20;
unsigned char uc1 = 10;
unsigned char uc2 = 'A';
unsigned char uc3 = 250;
char s1[]= { 'H', 'e', 'l', 'l', 'o', '\0'};
char s2[]= "Hello";
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
[My articles]
|
|
|
|
|
There is a lot of samples for RGN's for bitmaps but I need to create a RGN for Text with a font and size.
How can I do it?
thanks in advance
|
|
|
|