|
Thanks, but it is ambiguous. The window client region will have a 0,0 defined as the upper left corner of the window. The HDC (which is in the same client area) will also have a 0,0 defined which is not necessarily the same location. While ClientToScreen() will convert the point, it will convert it assuming the window coordinate space and not the HDC coordinate space. In order for ClientToScreen to work it would have to take the HDC as an argument.
Thanks for the suggestion, but it didn't work.
|
|
|
|
|
Screen coordinate space: relative to the screen.
Window coordinate space: relative to the window.
Client coordinate space: relative to the client area of a window (excluding title bar, border, menu, etc.)
For a given HDC, there will be two (potentially different) coordinate systems: device coordinates and logical coordinates.
For device coordinates, the origin, orientation, precision, etc. are determined by the device on which output is to be displayed: for the screen, these are usually relative to the window for which the device context was requested, with (0,0) at the top left, y increasing downwards, with pixel units (contrast with printers, which might have (0,0) at the bottom left, y increasing upwards, units being in something that makes sense for the type of printer). BeginPaint() , for instance, returns a device context for the client area of the window being painted.
Logical coordinates, controlled via SetMapMode() , can have a different origin, orientation, and unit size than those of the device that they eventually map to (MM_TEXT == 1-1 mapping to device units, MM_INCHES == 1" units, bottom left origin, y increases upwards, etc.)
The update region is merely an area within a given window marked as needing to be redrawn. BeginPaint() will set the clipping region to this area and erase it, but it does not determine how coordinates are mapped to the output device - it is useful only as an aid in determining what portion of the window needs to be redrawn (similarly, the clipping region is used to avoid redrawing portions of the screen - initially, it is set to the client area of the window (for client HDCs)).
See also:
Guide to Win32 Paint[^]
|
|
|
|
|
Thanks to everyone who provided insight. In the end I guess my description wasn't clear enough to explain the problem since it is a rather bizarre situation. Mixing MFC/Win32 can give odd results at times and this is one of those times! I'm looking into a workaround right now which is starting to look promising. If however anyone else has suggestions please make them!
Thanks!
ant
|
|
|
|
|
Can someone please explain to me the difference between a Linked list and an array... I'm a starter to programming and wish to know how linked lists work and where they are applied. Cheers
|
|
|
|
|
An array is a set of contiguous memory allocated for a set of objects. For example, if you have an array of 10 integers, you will have a memory section the size of 10 integers (with 4-byte integers, that is 40 bytes) allocated to hold them.
Linked lists hold extra pointers to previous and next elements in the list in addition to the object you want. The memory is not contiguous, so when you add a new element to the list, memory is allocated for that element (and the pointers to its next and previous elements in the list).
Arrays (or vectors) are used when you need fast random access to elements. Linked lists are used when you need quick insertion/removal of elements.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
Zac Howland wrote: Linked lists are used when you need quick insertion/removal of elements.
Unless you have an ordering requirement...
--
The Show That Watches Back
|
|
|
|
|
The explanation you've been given is most excellent. I'll just add that the book to buy on this stuff is called Mastering Algorithms in C. The code is in C, but the point is that the book explains all of these containers and also some algorithms ( sorting, etc ) in a way that leaves you fully understanding how they work, and the trade offs in choosing a particular container for a task.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
I used the CHtmlView to display a web page ,and I want to paint some rectangle to divide the page into some blocks. How to implement it? I am looking forward to your replay. Thank you in advance
|
|
|
|
|
I don't think you want to "paint" ( in the WM_PAINT way ) a rectangle in an HTML view.
You better try to modify the HTML source itself.
|
|
|
|
|
I call the ReadDirectoryChangesW() function in my project.
the compiler show error message about
error C2065: 'ReadDirectoryChangesW' : undeclared identifier
Please give me some recommend for solve this problem
|
|
|
|
|
|
why don't you just use ReadDirectoryChanges() (without W) ?
|
|
|
|
|
See here.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I used this function in VS2003 and it did compile without error
|
|
|
|
|
Client is started as an service which doesn't have an UI or a frontend. Its like a service application. Client exe can be installed on many machines.
When the server exe is started it wil give u the list of clients connected to that server.
Right click on the client IP/Name and start capturing sound.
The conversation between server-client is recorded and the wave file is generated physically on the hard disk.
When the wave file is played, you cannot the hear the sound clearly . It is stretched and delayed.
Whereas On the server side in sound.c file
LRESULT CALLBACK WinProc(HWND hWndSub, UINT message, WPARAM wParam, LPARAM lParam)
{
case(MM_WOM_DONE):
{
//iBufferCount--;
return 0;
}
}
If u uncomment //iBufferCount--; only server side recordig is absolutely fine.
If the above line is uncommented then you cannot hear the conversation from the client side and the recording is not smooth.
|
|
|
|
|
I have created a structure as
typedef struct __test{
char buf[10];
}TEST,*PTEST;
then i created a CList object as
CList<PTEST ,PTEST>my_firststruct;
then i am using to store linklist
if( my_firststruct.IsEmpty())
my_firststruct.Addhead(pTest);
else
my_firststruct.AddTail(pTest);
It is working fine. But problem start when i am using as
typedef struct __Second{
char buf[10];
}SECOND,*PSECOND;
typedef struct __test{
CList<PSECOND,PSECOND>my_secondstruct;
char buf[10];
}TEST,*PTEST;
if(pTest->my_secondstruct.IsEmpty())
when i am trying to call this is giving me error error code is
C0000005: This error is with memory. So how i will resolve this error.
Can any one help me on this...?
|
|
|
|
|
how i can prevent right click in windows explorer by using shell extensions.
sudarshan
|
|
|
|
|
why would you want to ?
any application that did that to me would get uninstalled immediately.
|
|
|
|
|
However, sometimes it is required by the customer. Here is some code:
<br />
document.onmousedown = disableclick<br />
<br />
function disableclick(e)<br />
{<br />
if( event.button == 2 )<br />
alert("Sorry Right-Click has been disabled!");<br />
<br />
return false;<br />
}<br />
|
|
|
|
|
the OP said "windows explorer" not "internet explorer".
|
|
|
|
|
Sorry, I need to go to bed earlier or get my eyes examined.
|
|
|
|
|
I suppose you could wipe the registry clean of relevant entries. What that will do to your system in general, is probably not what you want. You could always ask Microsoft for a copy of the source code...
--
Broadcast simultaneously one year in the future
|
|
|
|
|
Probably a stupid question but this has been bugging me. When a library is added to a project (either .lib or src), there are usuallu many functions contained in the library that are never used. Are these added to the final build?
Is there any way to get VC6 to list all unused functions/code?
|
|
|
|
|
If you link to a library and if you are using atleast one function that is exported from that library, then of course it goes for the final build. On the other hand, if you are building for "Release" and you have included a library which is absolutely not referred at all, linker warning 4089 will be displayed. And you can choose what to do.
http://vcfaq.mvps.org/ide/7.htm
If your ship doesn't come in, swim out to it. - Jonathan Winters
|
|
|
|
|
I'm not talking about linking against a library in that manner, but rather about the functions included within the library.
Obviously in the case of a dll, the functions will always be there, but what about static libraries. Are all of the functions within the .lib also included within the .exe, I guess so.
What about a library in src form (.h and .cpp), are all those unused functions added to the exe or can they be optimized in some manner?
|
|
|
|