|
I agree. If you know C++ there is really no point to using win32api.
John
|
|
|
|
|
The best source is the source code for MFC itself!
That said, I'm more than baffled by why you would consider this. Your return on investment is going to be dismal since you'll just be reinventing the wheel. Don't forget all the debug time you'll need to do.
And please don't use the excuse that your code will be "more stable." It is by this self-delusion that companies and people waste lots of time and money.
|
|
|
|
|
HeiniBlad wrote:
how to do splitters, message handling, owner drawing, multiple childwindows that handle data and so on?
Check out WTL. WTL and the related ATL classes add just a small amount to your executable's size, so if MFC is too big for you, WTL might be perfect.
--Mike--
Ericahist | Homepage | RightClick-Encrypt | 1ClickPicGrabber
Latest art~!@#2rDFA#@(#*%$Rfa39f3fqwf--=
NO CARRIER
|
|
|
|
|
I'm _very_ new to the concept of having multiple views with a splitter. Anyway, I was reading the article at "http://www.codeproject.com/useritems/splitterwindowtutorial.asp" and have a few questions. Since the author isn't looking at the mini-messageboard, I'll post here.
Anyway, the author showed code like this:
if ( !m_mainSplitter.CreateView( 0, 0, RUNTIME_CLASS(CSplitterWindowTutorialView), CSize(cr.Width()/2, cr.Height()), pContext ) ) <br />
{ <br />
MessageBox( "Error setting up splitter frames!", "Init Error!", MB_OK | MB_ICONERROR );<br />
return FALSE; <br />
}<br />
<br />
if ( !m_mainSplitter.CreateView( 0, 1, RUNTIME_CLASS(CSplitterWindowTutorialView), CSize(cr.Width()/2, cr.Height()), pContext ) ) <br />
{ <br />
MessageBox( "Error setting up splitter frames!", "Init Error!", MB_OK | MB_ICONERROR );<br />
return FALSE; <br />
}<br />
<br />
m_bInitSplitter = TRUE;
And then said to "include your document class in your view class header just before: #endif // _MSC_VER > 1000.".
So, if I wanted to have a CTreeView on the left and a CListView on the right, what would that chunk of code look like? And what would I put in the header? Thanks.
|
|
|
|
|
Modify the first create with the class that is derived from the CTreeView. You can create this class with the wizard (or what ever the same is in .net).
Another idea, create the project and there is a check box for splinter views. This will create a splinter window with the same view type. Just change that and viola' you have it done!
Larry
Larry J. Siddens
Cornerstone Communications
TAME THE DOCUMENT MONSTER
www.unifier.biz
|
|
|
|
|
OK, so I went into ClassWizard and clicked "New -> Class", then named it "CRightView" and said it should be derived from CListView. However, I get all sorts of errors when compiling:
RightView.cpp
error C2504: 'CListView' : base class undefined
error C2440: 'return' : cannot convert from 'class CRightView *' to 'class CObject *'
error C2653: 'CListView' : is not a class or namespace name
error C2065: 'classCListView' : undeclared identifier
error C2653: 'CListView' : is not a class or namespace name
error C2065: 'GetDocument' : undeclared identifier
error C2440: 'initializing' : cannot convert from 'int' to 'class CDocument *'
error C2653: 'CListView' : is not a class or namespace name
error C2653: 'CListView' : is not a class or namespace name I assume I added the class the wrong way . . . what's the right way?
|
|
|
|
|
rjahrman wrote:
error C2440: 'return' : cannot convert from 'class CRightView *' to 'class CObject *'
Did you say it was an MFC object? There are 3 class types.
MFC.
Generic.
Form Class
You created if with the MFC class type, correct? Guessing from the errors (the second) that it isn't what you have done. If you have, then (Did not use MFC class -- the first drop down box) delete the two files out of your project, delete the files off your system (or just rename them) and try again.
The CListView has as its very base the CObject. This is why I'm thinking that you used one of the other types.
Hope this helps
Larry
Larry J. Siddens
Cornerstone Communications
TAME THE DOCUMENT MONSTER
www.unifier.biz
|
|
|
|
|
What property should a dialog box have so i can move it around while the title bar is pressed ?
Thanks
|
|
|
|
|
lol!?
this is a property of a normal dialog!
Don't try it, just do it!
|
|
|
|
|
...but it's not working!
|
|
|
|
|
another interesting thing is that the dialog caption isn't shown!!
|
|
|
|
|
Use the resource editor to show the caption. Make sure title bar is selected in the styles.
John
|
|
|
|
|
r u doing some heavy duty processing in the OnInitDialog() function so the window isnt responding to messages?
"there is no spoon" biz stuff about me
|
|
|
|
|
Actually, I think the dialog is shown after OnInitDialog() completes. But the point is well taken.
/ravi
Let's put "civil" back in "civilization"
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
How would I structure an application that needs two main views with a splitter bar. The left view would be a tree view, right view would be a list view.
I'm having hard time figuring out how many documents I need and how to initialize the whole thing in CApp::InitInstance (i.e. do I use a SingleDocTemplate or a MultiDocTemplate?).
It occurs to me that this is exactly like IE, anyone know of some good sample code out there?
Mike Ellertson
|
|
|
|
|
Do you need to display multiple sets of data? By this I mean: Do you need to display a left and right pane for multiple sets of data at the same time. If yes then this would lead me to believe that you want MDI. If no (you will only ever need to display one left pane and one right pane) then I would believe you want SDI.
Is assumed that your tree view loads from one set of data and the right view (list view) displays a sub set of the data in the tree view but in greater detail.
Hope this helps
|
|
|
|
|
Your assumption was correct. Thanks this does help a lot!
In my CWinApp::InitInstance() I have the following code to attach the document class to the CListView derived class (view on right side of splitter):
CWinApp::InitInstance() {
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CClientDoc),
RUNTIME_CLASS(CMainFrame),
RUNTIME_CLASS(CClientView));
AddDocTemplate(pDocTemplate);
}
How do I attach my CTreeView derived class(left side of splitter) to my document class? I'd like it to be able to redraw itself when the document is updated.
Mike Ellertson
|
|
|
|
|
What does it mean? and why it happens?
thanks
|
|
|
|
|
Name mangling is done so you can overload methods/functions.
Example:
int max( int, int );
long max( long, long );
float max( long, long );
The compiler might do something like:
int max_int_( int, int );
long max_long( long, long );
float max_float( float, float );
This way in your code, you can just call max with one of the three different parameter types. The compiler makes the mangaling a lot more complex than the example.
Hope this helps.
Larry
Larry J. Siddens
Cornerstone Communications
TAME THE DOCUMENT MONSTER
www.unifier.biz
|
|
|
|
|
|
Larry J. Siddens wrote:
The compiler makes the mangaling a lot more complex than the example.
A lot more cryptic also...
John
|
|
|
|
|
I need to write an app that runs on a Windows-CE device (pocket PC)
Do I need to blow away my current OS (Windows 98) and risk losing all of my video games, device drivers, etc, etc just to install Windows XP just so I can buy .NET?
Or can I compile Windows CE apps using VC++ 6.0?
|
|
|
|
|
You can download "eMbedded Visual Tools 3.0 - 2002 Edition" at this web site below. Read the system requirements towards the bottom of the page.
Depending on what you want to do, you might need to install NT4 SP5 or XP. You will need NT 4 or XP to run the ce emulator.
http://www.microsoft.com/downloads/details.aspx?FamilyId=F663BF48-31EE-4CBE-AAC5-0AFFD5FB27DD&displaylang=en
Good luck.
|
|
|
|
|
100%!
Thank you very much
|
|
|
|
|
Hi,
I have a MDI program, and I would like to cover the view screen at the startup; Meaning, at the startup I only want the toolbar and menu bar to be shown
Ehsan Behboudi
|
|
|
|