|
Create a message handler for your WM_PAINT message in the window that you want to draw on.
Inside WM_PAINT add this code assuming hWnd is the handle to your window:
PAINTSTRUCT ps;
HDC hdc;
hdc = ::BeginPaint(hWnd, &ps);
There are a number of functions that you can use to paint on the HDC handle that you have just created, lookup "device context [win32]" in msdn.
You would add these functions here. Here is an example of how to paint two lines and a circle.
// Set the initial pen position for the pen that will draw the line. When you create the DC,
// the default position is at (0,0).
::MoveToEx(hdc, 100, 100, NULL);
// Draw a horizontal line from the current position (100,100) to (200,100).
::LineTo(hdc, 200, 100);
// Draw a line at 45 degrees current position (200,100) to (300,200).
::LineTo(hdc, 200, 100);
// Draw a circle. The circle function does not depend on the current pen position.
::Ellipse(hdc, 100, 100, 200, 200);
Finally, in order to free the DC that you have created with BeginPaint, you must call EndPaint.
::EndPaint(hWnd, &ps);
After reading your message again, I am not sure if you are asking how to paint to the desktop. If so, instead of using BeginPaint in order to create your DC, use this call:
hdc = CreateDC("DISPLAY", NULL, NULL, NULL);
or
hdc = GetDC(NULL);
In either case, this will only create a DC to the primary monitor. If you are programming for a computer with multi-monitor support you will need to use EnumDisplayMonitors to determine which dirver to create the DC for.
Then you will need to use this function to release the DC:
::DeleteDC(hdc);
or
::ReleaseDC(NULL);
Depending on which function you used to allocate the DC.
|
|
|
|
|
If you're using the console ( which is how you should learn C++ before moving to Windows specific stuff ), then there is no real way to show graphics. If you're using MFC, then stop it now. Learn the basics of C++, class design, OO, and the standard library before getting to the Microsoft specific stuff. You'll be glad you did.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
|
Nish [BusterBoy] wrote:
For once, CG didnt mention STL.
When I said 'the standard library', I was thinking of both STL and IOStreams.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
|
Hello!
I am trying to perform a wildcard delete in my MFC App. I am currently calling a DOS command, but this results in a flashing DOS window. Is there any way to accomplish this without opening a DOS window at all???
Mandy
|
|
|
|
|
You can use the FindFile API to locate the files you wish to delete, and then your choice of functions (unlink() , DeleteFile() , etc.) to perform the deletion.
farewell goodnight last one out turn out the lights Smashing Pumpkins, Tales of a Scorched Earth
|
|
|
|
|
|
|
Hi Mandy,
The responses given so far will do the job, but it's always good to know your options, even if some are quick and dirty like this one:
::WinExec("del *.bak", SW_HIDE);
Regards,
Alvaro
A priest, a minister and a rabbi walk into a bar. The bartender says, "What is this, a joke?"
|
|
|
|
|
I have three CBitmapButton controls and I can't figure out what flags to specifiy in Create to allow all three buttons to hold their state independently of each other. Right now it appears they are grouped, when one is down the other two are up and so on. do OWNERDRAW buttons lose the ability to keep state? Do I create a GROUP button for buttons I want to be synchronized with each others up/down state? I'm not specifying WS_GROUP explicitly so I can't figure out why the buttons are acting like grouped buttons.
Anyone care to fill me in on how this is done???
I'm creating the controls at runtime in a CView so i'm NOT using the dialog editor.
TIA
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
HockeyDude wrote:
I'm not specifying WS_GROUP explicitly ...
I think that is actually the problem, WS_GROUP specifies the start of a group of controls. If you want each button to act seperately, then put each button in its own group.
|
|
|
|
|
Tried that too...still no successs I even tried !WS_GROUP in case WS_GROUP is implicit. Don't know if it had any internal effect, but it didn't work either.
I'm doing something that I shouldn't obviously...so I gotta backtrack and figure that out first.
Thanx again!
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
INTRODUCTION
-------------------------------------------------------------------------
Hello,
First of all let me thank you in advance for reading my question.
And let me excuse for my english, I'm just a begginer with it.
I have never had time to learn the "best way of working" in VC++6 and now I'm concerned about the fact that I need to use some parts of my code in almost all the applications, some other parts have to be used sometimes, and so on...
I'm a Numerical Control Machine Program developer.
QUESTION
-------------------------------------------------------------------------
OK, I've developed some classes that I need (i.e: a dialog-box that is used as a control and that shows the coordinates of the machine).
I would like to know how should I use them in my new projects, wich is the best way?
1:
I know I can link them in DLL's and then create instances of those classes, but then I cannot get the parameters list in the code editor while I'm writing calls to it's methods.
2:
Should I add the classes in each project and recompile all of them again?
This allows me to get the parameters list while I'm editing.
3:
I've seen something as an object library in the VC++6, could it be used for that pourpose?
4:
Is there any other method?
As you have seen I don't know wich method use, could you give me an advice?
|
|
|
|
|
Probably the simplest method is using your utility classes in source code form. Some programmers have a personal utility directory where they put all that stuff, and feed the projects from there so that there are no duplicate files.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Hello Joan,
Joan Murt wrote:
I know I can link them in DLL's and then create instances of those classes, but then I cannot get the parameters list in the code editor while I'm writing calls to it's methods.
I've never relied on the editor's Intellisense stuff for writing my code so I'm not sure what makes it work and what makes it break. I personally recommend you don't rely on it either since it can be the cause of frustration. At any rate, assuming that you include the header files for these classes at the top of your project's CPP files, the editor should pick up the method signatures for the Intellisense. Have you tried this?
Joan Murt wrote:
Should I add the classes in each project and recompile all of them again?
This allows me to get the parameters list while I'm editing.
You can definitely do this, although it's not my favorite way. I prefer the DLL way (above). However, you can also opt for putting your common classes inside on directory and including them into your various projects straight from there (without copying them). This avoids having multiple copies of the common files across each of your projects. Still, it will mean that each project will carry around the same code which, IMHO, is best kept inside a separate DLL.
Joan Murt wrote:
I've seen something as an object library in the VC++6, could it be used for that pourpose?
I don't know about this. I do remember once adding code for a splash screen via this thing, but I don't remember how it was done.
Regards,
Alvaro
A priest, a minister and a rabbi walk into a bar. The bartender says, "What is this, a joke?"
|
|
|
|
|
Can anybody tell me some links about "OpenGL",I need some free tutorials and sample codes.
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
this site is acually pretty good. but if you need more:
Web sites
=======
- www.opengl.org (this contains links to sites with tutorials; as well,
there are discussion groups where you can post questions about using OpenGL)
- nehe.gamedev.net
- http://www.xmission.com/~nate/opengl.html
- http://www.cornflakezone.com/ (this site contains a link to a project for
a 3D modelling tool using OpenGL, under the 'Projects' section; the link for
this project does not work, so you may want to contact the site creator to
get the correct URL)
- http://www.mesa3d.org/brianp/sig97/perfopt.htm (course notes for a seminar
on optimizing OpenGL applications)
-
http://www.opengl.org/developers/code/examples/more_samples/more_samples.htm
l
- www.graphicsgems.org (contains articles about useful computer graphics
algorithms)
- www.gamedev.net (site for game developers; lots of articles for OpenGL
programming)
Peace through waves,
- www.codeguru.com (good general programming site; contains some OpenGL
articles)
- www.gamasutra.com (a game developer's site; contains articles about
graphics programming; may contain more than what you need, but I've found
that their articles contain useful techniques)
- www.3dgamedev.com (site for real-time rendering)
- http://members.home.net/borealis/opengl.html
News Groups
=========
- comp.graphics.api.opengl
- comp.graphics.algorithm
- comp.graphics
Mailing Lists
========
- http://groups.yahoo.com/group/opengl-gamedev-l/
Books
=====
- OpenGL Programming Guide, Mason Woo et al., ISBN 0201604582
- Interactive Computer Graphics: A Top-Down Approach with OpenGL, Edward
Angel, ISBN: 020138597X
- Real-time Rendering, Tomas Moller and Eric Haines, ISBN: 1568811012
- Computer Graphics: Principles and Practices, James Foley, Andrie Van Dam,
Steven Feiner, John Hughes (general computer graphics book; it doesn't
necessarily deal with OpenGL, but contains lots of articles about computer
graphics theory, especially information on understanding affine
transformations and lighting)
- Any of the Graphics Gems books edited by Andrew Glassner (contains useful
articles on programming techniques used in computer graphics
Mandy
|
|
|
|
|
Thanks for your complete informations
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Mandy's advice is good, but a little expansive. In the first instance, get the OpenGL red book and check out nehe.gamedev.net. They are the best sources of info.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
How can I add the current date (DD-MM-YY) in an edit box, when a user add a new record?
|
|
|
|
|
Sander wrote:
when a user add a new
Your question is not clear,but why don't you use "Date Time Picker"?
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Sander wrote:
How can I add the current date (DD-MM-YY) in an edit box
With COleDateTime::Format
COleDateTime date;
date = COleDateTime::GetCurrentTime();
pEdit.SetWindowText((LPCTSTR)date.Format(VAR_DATEVALUEONLY));
Cheers;)
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|
|
I'm looking for CPUStress or a similar utility. (I thought it was available with the Free W2K ResKit downloads, but couldn't find it.)
TIA
Peter
|
|
|
|
|
Are you looking to (also) reduce the amount of free RAM available to the app being stress tested?
/ravi
"There is always one more bug..."
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|