Click here to Skip to main content
Click here to Skip to main content

OpenGL Win32 AppWizard

By , 19 May 2003
 

Sample Image - OGLWiz.gif
An example of a generated application

Installation (VC6 version)

Copy OGLWiz.awx and Oglwiz.hlp to your Custom AppWizard directory (probably "C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template").

Overview of the generated project (VC6 version)

Projects generated with this AppWizard contains two classes:
  • CApp
  • CMainWnd
There is a global instance of CApp (gApp) that owns an instance of CMainWnd (m_pMainWnd). CApp creates the main window, initializes OpenGL, maintains the message pump and manages screen updates. CMainWnd encapsulates the main window and its OpenGL rendering context. CApp notifies CMainWnd of different phases of the OpenGL RC life cycle (by calling CMainWnd::InitScene(), CMainWnd::KillScene() and CMainWnd::DrawScene()). CMainWnd::Tick() is called (by CApp) each time the windows message queue is empty.

This may not be the most elegant OO solution; some of the code in CApp really belongs in CMainWnd, like window creation and (some of the) message handling. But the idea is to let CApp do the grunt work of Win32API and OpenGL setup and leave CMainWnd free to concentrate on what's displayed in the client area.

Using the wizard

Chose to create a new project, selecting "OpenGL Win32 Application" from the list of project types, enter a project name and press OK.

The following options to customize the project are available:

Application

Menu: Check this box to add a menu to the main window.
Keyboard accelerator: Adds a keyboard accelerator resource and processes accelerator keys.
About box: Creates an about dialog and a dialog callback routine. Also adds an About command to the menu (if available).

Main window

Select appearance of the main window.

Window: Creates an overlapped main window with default size.
Fullscreen: Creates a topmost popup window that occupies the entire screen.
Both: Appearence is determined with a switch: If FULLSCREEN is not #defined, the application runs in a window.
Show FPS in caption: Adds code to show Frames Per Second on regular intervals. (Not available in fullscreen mode)

OpenGL Support

Use OpenGL: Adds code to initialize and maintain an OpenGL RC. If this box is not checked, a plain Win32 application is created.
Sample code: Adds code that renders a simple OpenGL scene (spinning cube).
Double buffering: Creates a double-buffered pixel buffer.
Color depth: Number of color bitplanes in each color buffer.
Z-buffer depth: Bit-depth of the Z-buffer.
Background color: Press the button to select background color for main window.

Notes on the VC++.NET appwizard

In VC++.NET, appwizards are no longer compiled plugins, but rather a collection of scripts and template files, with a HTML-based UI. See Readme.txt for installation instructions.

I took the opportunity to change the object model into something that, IMO, is a bit cleaner. Instead of having one class for the window and one class for the application, there is now one abstract base class, CApp, that takes care of window creation, OpenGL initialization etc. The "meat" of the generated app goes in a derived class that overrides a number of virtual functions of CApp. For example, InitScene(), DrawScene() and KillScene() are virtual.

Other than that, the VC++.NET version of the AppWizard behaves basically the same as the VC++6 version.

History

  • 20 May 2003 - Updated VS.NET download

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Ulf Öhlén
Sweden Sweden
Member
No Biography provided

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralSimple and elegant - my 5memberSharjith22 Mar '11 - 8:32 
Does well what it is made for!
RegardsSmile | :)
N. Sharjith

GeneralVisual Studio 2008 (9) version? [modified]memberhain7 Jan '09 - 6:49 
Ulf,
 
I tried to compile the solution of the VC++.NET version on VS 9, and it gave a bunch of errors. Any chance you could update this to work on VS 9? This looks like a neat wizard, and I'd love to use it!
 
Thanks,
thain
 
modified on Wednesday, January 7, 2009 12:56 PM

GeneralglReadPixels()memberJeanFilion12 Aug '07 - 3:33 
glReadPixels(...) command does not work for me after creating a dialog with this app wizard.
 
Can someone help ?
 

This is the code:
 

void CSelectionTestApp::DrawScene()
{
// TODO: Replace the following sample code with your code to draw the scene.
glClearColor (0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable (GL_COLOR_MATERIAL);
glDisable (GL_TEXTURE_2D);
 
glDrawBuffer(GL_BACK);

// Position and rotate the camera
glTranslatef(0.0f, 0.0f, -5.0f);

// Draw a yellow point
glPointSize(10.0);
glColor3f(1.0f,1.0f,0.0f);
glBegin(GL_POINTS);
glVertex3f(0.5f,0.5f,-0.4f);
glEnd();

 
if (m_LeftButtonDown)
{
// Get the pixel color
glReadBuffer(GL_BACK);
 
const unsigned int size = 10;
GLubyte * framebuf = new GLubyte[size];

glReadPixels(m_LeftDownPos.x,m_LeftDownPos.y, 1,1, GL_RGB, GL_UNSIGNED_BYTE, framebuf);

int r = framebuf[0];
int g = framebuf[1];
int b = framebuf[2];

}
}
 

 
framebuf gets 255,255,255 always.
 
Please help !!
QuestionRe: glReadPixels()memberBilica29 Nov '07 - 6:02 
Hi there,
 
I am having the same problem here...
 
Does anybody have any idea about this problem?
 
Cheers folks!
AnswerRe: glReadPixels()memberJeanFilion29 Nov '07 - 8:02 
I got it working by adding the glReadPixels() command within the OnGLDraw() method. Try that and let me know if it works for you. The same is true for me for call lists and other commands. It seems I can't call stuff like glReadPixels() prior to the OnGLDraw() method executing.
 
I'm also having trouble with tooltips, they have the focus and don't like to lose focus when I refresh the childview. The result is a really slow system stall... ideas ?
Questionhow to do real-time image processing using VC++?memberli zhiyuan25 Jun '07 - 22:01 
Dear all friends
 
Nowadays I got a project how to design a real-time image processing or pattern recognition system using VC++? actually i never do this any more. so anyone give me suggestion here. thanks a lot.
 

 

 
Li Zhiyuan
 
26/06/2007

AnswerRe: how to do real-time image processing using VC++?memberzafersavas8 Jun '08 - 2:22 
Dude, This is a HUGE question. No one can give you an answer unless you give more details.
What do you mean by image processing? As you know Image processing is a huge area and there are many fields in it.
People here can only help you by image processing libraries used with c++ (such as OpenCV library).
 
Good luck.
GeneralErrors in scriptmemberBruzak12 Apr '07 - 4:32 
Hi there,
 
Regarding the appwizard for VC++.net.
 
Using: VS 2003-SP1, XP pro SP2.
 
When pressing OK after entering the project name I receive the following error message:
 
Error in script
Line 2
Char 1
Error Invalid character
Code 0
URL (MyPath)/HTML/1033/default.htm
 
Clicking 'YES' to continue with the script displays the same mesage again.
Clicking 'YES' again to continue with the script displays:
 
Error in script
Line 242
Char 2
Error Object expected
Code 0
URL (MyPath)/HTML/1033/default.htm
 
Clicking 'YES' again to continue with the script displays the GUI.
Changing nothing and clicking 'Finish' gives the error:
 
Error in script
Line 273
Char 2
Error Object expected
Code 0
URL (MyPath)/HTML/1033/default.htm
 
Clicking 'YES' again to continue with the script hides the error message leaving the GUI on the screen. The project is not created.
 
Anybody knows the reason for this?
Thanks,
 
Bill
 


GeneralStart Maximizedmemberrfs671816 Dec '06 - 14:25 
Great AppWiz. But how do I set this to start with the window maximized.
I tried a buch of different things and can't get it to work.
 
Thanks
Ron
Questionhow to combine two program??membermallie26 Mar '06 - 19:28 
i have two program that can run..but i can't combine it..
for your information i still studying..
the first program is:
 
#include
#include
 
GLfloat vertices [][3] = {{-0.3, -0.3, 0.3}, {-0.23,0.3,0.3} ,
{0.3,0.3,0.3}, {0.3,-0.3,0.3}, {-0.3,-0.3,-0.3} ,
{-0.3,0.3,-0.3}, {0.3,0.3,-0.3},{0.3,-0.3,-0.3}};
 
GLfloat colors[][3] = {
{1.0,0.0,0.0},{0.0,1.0,1.0},
{1.0,1.0,0.0}, {0.0,1.0,0.0},
{0.0,0.0,1.0}, {1.0,0.0,1.0},
{0.0,0.0,0.0}, {1.0,1.0,1.0}};
 

void polygon (int a, int b, int c, int d)
{
 
glBegin(GL_POLYGON);
glColor3fv(colors[a]);
glTexCoord2f(0.0,0.0);
glVertex3fv(vertices[a]);
 
glColor3fv(colors[b]);
glTexCoord2f(0.0,1.0);
glVertex3fv(vertices[b]);
 
glColor3fv(colors[c]);
glTexCoord2f(1.0,1.0);
glVertex3fv(vertices[c]);
 
glColor3fv(colors[d]);
glTexCoord2f(1.0,0.0);
glVertex3fv(vertices[d]);
glEnd();
}
 
void colorcube()
{
 
polygon(0,3,2,1);
polygon(2,3,7,6);
polygon(3,0,4,7);
polygon(1,2,6,5);
polygon(4,5,6,7);
polygon(5,4,0,1);
}
 
static GLfloat theta[]={0.0,0.0,0.0};
static GLint axis = 2 ;
 
void display (void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(theta[0],1.0,0.0,0.0);
glRotatef(theta[1],0.0,1.0,0.0);
glRotatef(theta[2],0.0,0.0,1.0);
 
colorcube();
glutSwapBuffers();
}
 
void spinCube()
{
theta [axis] += 5.0; //speed for cube
if (theta[axis] > 360.0) theta[axis] -= 360.0;
glutPostRedisplay();
}
 
void mouse (int btn, int state, int x, int y)
{
if(btn == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
axis = 0;
if (btn == GLUT_MIDDLE_BUTTON && state == GLUT_DOWN)
axis = 1;
if (btn == GLUT_RIGHT_BUTTON && state == GLUT_DOWN)
axis = 2;
}
 
void myReshape(int w, int h)
{
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w <= h)
glOrtho(-2.0,2.0,-2.0 * (GLfloat) h /(GLfloat)
w,2.0 * (GLfloat)h / (GLfloat) w,
-10.0,10.0);
 
else
glOrtho(-2.0 * (GLfloat)w /(GLfloat)h,
2.0 * (GLfloat) w / (GLfloat)h,-2.0,2.0,-10.0,10.0);
glMatrixMode(GL_MODELVIEW);
}
 
int main(int argc, char **argv)
{
GLubyte image [64][64][3];
int i,j,r,c;
for (i =0; i<64; i++)
{
for (j=0; j<64; j++)
{
c = (((i&0x8) == 0)^((j&0x8)==0))*255;
image[i][j][0] = (GLubyte) c;
image[i][j][1] = (GLubyte) c;
image[i][j][2] = (GLubyte) c;
}
}
 
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500,500);
glutCreateWindow("color cube");
 
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glutIdleFunc(spinCube);
glutMouseFunc(mouse);
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
 
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,64,64,0,GL_RGB,GL_UNSIGNED_BYTE, image);
 
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glClearColor(1.0,0.5,1.0,1.0);
glColor3f(1.0,1.0,1.0);
glutMainLoop();
}
 

and the second program is:
 
/* field.c - by Tom McReynolds, SGI */
 
/* Using the accumulation buffer for depth of field (camera focus blur). */
 
#include
#include
#include
 
const GLdouble FRUSTDIM = 100.f;
const GLdouble FRUSTNEAR = 320.f;
const GLdouble FRUSTFAR = 660.f;
 
/*
** Create a single component texture map
*/
GLfloat *make_texture(int maxs, int maxt)
{
int s, t;
static GLfloat *texture;
 
texture = (GLfloat *)malloc(maxs * maxt * sizeof(GLfloat));
for(t = 0; t < maxt; t++) {
for(s = 0; s < maxs; s++) {
texture[s + maxs * t] = ((s >> 4) & 0x1) ^ ((t >> 4) & 0x1);
}
}
return texture;
}
 
//enum {SPHERE = 1, CONE};
 
void
render(void)
{
/* material properties for objects in scene */
static GLfloat wall_mat[] = {1.f, 1.f, 1.f, 1.f};
 
glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT);
 
/*
** Note: wall verticies are ordered so they are all front facing
** this lets me do back face culling to speed things up.
*/

glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, wall_mat);
 
/* floor */
/* make the floor textured */
glEnable(GL_TEXTURE_2D);
 
/*
** Since we want to turn texturing on for floor only, we have to
** make floor a separate glBegin()/glEnd() sequence. You can't
** turn texturing on and off between begin and end calls
*/
glBegin(GL_QUADS);
glNormal3f(0.f, 1.f, 0.f);
glTexCoord2i(0, 0);
glVertex3f(-100.f, -100.f, -320.f);
glTexCoord2i(1, 0);
glVertex3f( 100.f, -100.f, -320.f);
glTexCoord2i(1, 1);
glVertex3f( 100.f, -100.f, -640.f);
glTexCoord2i(0, 1);
glVertex3f(-100.f, -100.f, -640.f);
glEnd();
 
glDisable(GL_TEXTURE_2D);
 
/* walls */
 
glBegin(GL_QUADS);
/* left wall */
glNormal3f(1.f, 0.f, 0.f);
glVertex3f(-100.f, -100.f, -320.f);
glVertex3f(-100.f, -100.f, -640.f);
glVertex3f(-100.f, 100.f, -640.f);
glVertex3f(-100.f, 100.f, -320.f);
 
/* right wall */
glNormal3f(-1.f, 0.f, 0.f);
glVertex3f( 100.f, -100.f, -320.f);
glVertex3f( 100.f, 100.f, -320.f);
glVertex3f( 100.f, 100.f, -640.f);
glVertex3f( 100.f, -100.f, -640.f);
 
/* ceiling */
glNormal3f(0.f, -1.f, 0.f);
glVertex3f(-100.f, 100.f, -320.f);
glVertex3f(-100.f, 100.f, -640.f);
glVertex3f( 100.f, 100.f, -640.f);
glVertex3f( 100.f, 100.f, -320.f);
 
/* back wall */
glNormal3f(0.f, 0.f, 1.f);
glVertex3f(-100.f, -100.f, -640.f);
glVertex3f( 100.f, -100.f, -640.f);
glVertex3f( 100.f, 100.f, -640.f);
glVertex3f(-100.f, 100.f, -640.f);
glEnd();
 

glPushMatrix();
glTranslatef(-80.f, -60.f, -420.f);
// glCallList(SPHERE);
glPopMatrix();
 

glPushMatrix();
glTranslatef(-20.f, -80.f, -600.f);
// glCallList(CONE);
glPopMatrix();
 
if(glGetError()) /* to catch programming errors; should never happen */
printf("Oops! I screwed up my OpenGL calls somewhere\n");
 
glFlush(); /* high end machines may need this */
}
 
enum {NONE, FIELD};
 
int rendermode = NONE;
 
void
menu(int selection)
{
rendermode = selection;
glutPostRedisplay();
}
 
GLdouble focus = 420.;
 
/* Called when window needs to be redrawn */
void redraw(void)
{
int i, j;
int min, max;
int count;
GLfloat scale, dx, dy;
 
switch(rendermode) {
case NONE:
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-FRUSTDIM, FRUSTDIM, -FRUSTDIM, FRUSTDIM, FRUSTNEAR, FRUSTFAR);
glMatrixMode(GL_MODELVIEW);
render();
break;
case FIELD:
min = -2;
max = -min + 1;
count = -2 * min + 1;
count *= count;
 
scale = 2.f;
 
glClear(GL_ACCUM_BUFFER_BIT);
 
for(j = min; j < max; j++) {
for(i = min; i < max; i++) {
dx = scale * i * FRUSTNEAR/focus;
dy = scale * j * FRUSTNEAR/focus;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-FRUSTDIM + dx,
FRUSTDIM + dx,
-FRUSTDIM + dy,
FRUSTDIM + dy,
FRUSTNEAR,
FRUSTFAR);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(scale * i, scale * j, 0.f);
render();
glAccum(GL_ACCUM, 1.f/count);
}
}
glAccum(GL_RETURN, 1.f);
break;
}
 
glutSwapBuffers();
}
 
/* ARGSUSED1 */
void key(unsigned char key, int x, int y)
{
if(key == '\033')
exit(0);
}
 

const int TEXDIM = 256;
/* Parse arguments, and set up interface between OpenGL and window system */
int
main(int argc, char *argv[])
{
GLfloat *tex;
static GLfloat lightpos[] = {50.f, 50.f, -320.f, 1.f};
static GLfloat sphere_mat[] = {1.f, .5f, 0.f, 1.f};
static GLfloat cone_mat[] = {0.f, .5f, 1.f, 1.f};
GLUquadricObj *sphere, *cone, *base;
 
glutInit(&argc, argv);
glutInitWindowSize(512, 512);
glutInitDisplayMode(GLUT_RGBA|GLUT_DEPTH|GLUT_ACCUM|GLUT_DOUBLE);
(void)glutCreateWindow("depth of field");
glutDisplayFunc(redraw);
glutKeyboardFunc(key);
 
glutCreateMenu(menu);
glutAddMenuEntry("Normal", NONE);
glutAddMenuEntry("Depth of Field", FIELD);
glutAttachMenu(GLUT_RIGHT_BUTTON);
 
/* turn on features */
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
 
/* place light 0 in the right place */
glLightfv(GL_LIGHT0, GL_POSITION, lightpos);
 
/* remove back faces to speed things up */
glCullFace(GL_BACK);
 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 
// glNewList(SPHERE, GL_COMPILE);
/* make display lists for sphere and cone; for efficiency */
sphere = gluNewQuadric();
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, sphere_mat);
gluSphere(sphere, 20.f, 20, 20);
gluDeleteQuadric(sphere);
glEndList();
 
// glNewList(CONE, GL_COMPILE);
cone = gluNewQuadric();
base = gluNewQuadric();
glRotatef(-90.f, 1.f, 0.f, 0.f);
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, cone_mat);
gluDisk(base, 0., 20., 20, 1);
gluCylinder(cone, 20., 0., 60., 20, 20);
gluDeleteQuadric(cone);
gluDeleteQuadric(base);
glEndList();
 
/* load pattern for current 2d texture */
tex = make_texture(TEXDIM, TEXDIM);
glTexImage2D(GL_TEXTURE_2D, 0, 1, TEXDIM, TEXDIM, 0, GL_RED, GL_FLOAT, tex);
free(tex);
 
glutMainLoop();
return 0; /* ANSI C requires main to return int. */
}
 

please help..thanksBlush | :O
 

QuestionVisual Studio 2005memberjpummill23 Nov '05 - 7:02 
Tried to use this in Visual Studio 2005 with no success. How would one go about upgrading it to work.
 
Thanks for any insight.
AnswerRe: Visual Studio 2005memberbrianpoteat24 Aug '07 - 10:01 
See thread below titled:
"bug fix with Microsoft Visual Studio .NET 2003".
 
There is a fix outlined in there for 2005 as well.
GeneralAbout coding a simple human facesussAnonymous26 Sep '05 - 8:46 
I need a openGL coded human face like any smiley Smile | :) , which should have some cartoony hair too.
 
Please can anybody provide me as early as possible!
 
Please!
 
I am witing for any help ! here!
 
Maddy
GeneralI need help on using this for an MDI appmembersardaukar_siet12 Feb '05 - 12:18 
(warning: I am a newbie coder) Smile | :)
 
I want to do an MDI app using C++ (VS.NET). My basic idea is to have an MDI child dialog with input boxes and a "go" button. From them on, these parameters are passed on to another class that chunks away calculations on them and returns draw commands. I would then like for another MDI child window (basically, an OpenGL "canvas") to receive and render them. I tried looking up examples for this, but they are either WinAPI (cryptic) or MFC and I was hoping to find a .NET "component" (with all advantages therecoming). Please give me any pointers to find my way out of this or better yet, some source code. Poke tongue | ;-P
GeneralGetting an error when trying to start a projectmemberTheTroll12310 Oct '04 - 10:49 
I get this error ever time I try to start the OpenGL Wizard. "Object with Program ID VsWizard.VsWizardEngine Cannot be Created. I have tested using a bunch of different Wizards and they are worked fine. I triple checked the Absolute Path and it is correct. I have Visual Studio .net Professional and I am using the .net version of the OpenGL AppWizard. Any ideas?
 
Thanks for any help anyone can provide.
TheTroll
GeneralRe: Getting an error when trying to start a projectmembergulumulu7 Oct '05 - 23:07 
I have the same problem.
QuestionHow to run 2 different(or same) OpenGL objects in one DialogBox?memberwerter13 May '04 - 21:11 

How to run 2 different(or same) OpenGL objects in one DialogBox?
IDC_STATIC1 is a first OpenGL objects Scene window.
IDC_STATIC2 is a second OpenGL objects Scene window.
IDC_STATIC1 and IDC_STATIC2 ,they are placed on IDD_DIALOG1.
 
code:
pclStatic = (CStatic *)GetDlgItem(IDC_OpenGL_Window);
pclGlView = new CGlView(pclStatic);
pclGlView->OnCreate();
pclGlView->InitGL();
pclGlView->DrawGLScene();
 
pclStatic1 = (CStatic *)GetDlgItem(IDC_OpenGL_Window);
pclGlView1 = new CGlView(pclStatic1);
pclGlView1->OnCreate();
pclGlView1->InitGL();
pclGlView1->DrawGLScene();
 
Will not involve both windows (IDC_STATIC2,IDC_STATIC1)
GeneralA suggestion.memberSevenCat15 Dec '03 - 23:49 
I think we can did all this in a DLL,or a LIB!
 
class Cttt3d : public CSCWin
{
}
 
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
Cttt3d win;
win.Create("faint",200,200,16,false,100,100,false);
win.StartRender();
return 0;
}
Questionhow can i add my own class to applicationsusswuling1291 Dec '03 - 14:07 
good morning:
There is some diffcult for me, a new programer,to use vc++6.0.I don't know how to add my own class which is based on object class into project.I'm waiting you response with great thanks.
My E-mail:wuling129@sohu.com
Thank you!
GeneralAll I get is a Blank form when I select this as a projectmemberMike_in_Paradise26 May '03 - 6:12 
as opposed to the window asking for options:
 
Running MSVC++.NET 2002
 
I look in:
 
C:\Program Files\Microsoft Visual Studio .NET\Vc7\VCWizards\OGLWiz7\HTML\1033\default.htm
 
and the HTML code is there:
 
I checked the OGLWiz7.vsz file in the directory
 
C:\Program Files\Microsoft Visual Studio .NET\Vc7\vcprojects
 
Here are the contents:
 
VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine
 
Param="WIZARD_NAME = OpenGL Application"
Param="ABSOLUTE_PATH = C:\Program Files\Microsoft Visual Studio.NET\Vc7\VCWizards\OGLWiz7"
Param="FALLBACK_LCID = 1033"
 
Any ideas???

GeneralRe: All I get is a Blank form when I select this as a projectmemberdpaquc22 Oct '03 - 5:19 
I have the exact same problem!
GeneralRe: All I get is a Blank form when I select this as a projectmemberwebbsk24 Nov '03 - 9:34 
So did I. The author tackles the same problem in the thread named, appropriately enough "Problem..."
 
The end result of the thread is that in the OGLWiz7.vsz file, the ABSOLUTE_PATH is set to "C:\Program Files\Microsoft Visual Studio.NET\Vc7\VCWizards\OGLWiz". But your installation of MSVS .NET probably named the folders as "...\Microsoft Visual Studio .NET\...". Notice how the second one has a space between "Studio" and ".NET" and the first one does not? (It took me 20min and reading through all the other messages to notice! D'Oh! | :doh: ) Double check that your file has the space between the words.
This should resolve the problem b/c I had the exact same problem and I'm using the 2003 upgrade version and Win2K but it worked for me.
GeneralRe: All I get is a Blank form when I select this as a projectmemberSevenCat15 Dec '03 - 23:44 
Wizard=VsWizard.VsWizardEngine
 
--->
Wizard=VsWizard.VsWizardEngine.7.1
Generalbug fix with Microsoft Visual Studio .NET 2003membermarkthecoder15 May '03 - 21:01 
In the file OGLWiz7.vsz change the first two lines from:
 
VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine
 
to:
 
VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine.7.1
 
or else won't work.
 
keep up the good workSmile | :)
 
Markthecoder
GeneralListen to this guy!sussAnonymous4 Jul '03 - 4:33 
Thanks, I was wondering what was going on...

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web04 | 2.6.130523.1 | Last Updated 20 May 2003
Article Copyright 2001 by Ulf Öhlén
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid