|
lctrncs wrote: So I should right click on CDialog, choose Add Member Function and enter Ccombobox and m_combo to instantiate m_combo as a member CDialog?
No. Use ClassWizard (Ctrl+W) to associate a member variable with a control.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
hi there!
im trying to write a graphing app using the win32 api with MFC...
im trying to figure out how i can represent a decimal number position in a grid of pixels:
i.e.
given y = sqrt(x)
if i calculate with x = 5.7 then y becomes 32.49 which is a bit of a problem because no pixel exists at 32.49, so the line gets drawn at y = 32, so the graph curve is messed up because the curves arent matching up because of the round-off error...
im trying to draw the line using the MoveTo and LineTo functions, and if i can figure out a way to draw the correct pixel corresponding to the equation then i can use a very low incremental value such as 0.1 to make the curve look smooth, though its not really smooth...
but if theres a better way of drawing a graph app (without using bezier curves or whatever) please could u let me know!
hope u can help me out! thx!
|
|
|
|
|
If yu are going to use LineTo to draw your lines, then you are going to have to draw them using very small increments, and the round-ff errors are not going to be that noticeable. If you are trying to draw the curve for squares or square-root values, for example, you need to keep your increments as small as possible to produce a "smooth" effect. Otherwise you are going to have to use some othe mathematical functions expressly written to display curves in a very smooth format. You can get more help on the internet about those than I can explain here. Good luck
John P.
|
|
|
|
|
Hey all,
I've run into a small problem. When Windows generates an HDC on its own (for a paint message) it uses the clip region to determine the update area. If you call GetClipBox() the coordinates start at 0,0. If that region is a portion of a larger window I would need to know where that area is in relation to the entire window.
Is there a function that can translate the HDC coordinate space into one that maps onto the window rect (or some other global space?)
Thanks!
ant
|
|
|
|
|
ClientToWindow or ClientToScreen might help
|
|
|
|
|
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".
|
|
|
|