"MDI" (D as in 'document') is a common term every Windows' programmer should know.
Never make up your own TLA if that TLA is "in common use."
If you don't agree with me , "KMA" is still available.....
Announcement
Collapse
No announcement yet.
MDI in PB9 with DDT
Collapse
X
-
Are we still talking "D" as in Documents??? or "D" as in Dialogs???
Sorry, its a sore point that many misconstrue one for the other
Leave a comment:
-
>MDI is not very compatible with the Windows Dialog engine
Pipes and Mailslots are not very compatible with PB "OPEN"
DIALOG DOEVENTS is not very compatible with MsgWaitForMultipleObjects
Lots of things are not very compatible with purposes other than that for which they were intended.
Leave a comment:
-
MDI is not very compatible with the Windows Dialog engine.
Some time back a few us tried to hack a way to get MDI from a DDT dialog and I came close. but there was some quirks that could not be overcome and it was not stable. Our code should be in the forums.
MDI uses a different set of API than do Dialogs for handling default window messages. Now it is possible to simulate some dialog features in a custom class for MDI, but Dialogs don't much like MDI messages.
I created a custom Dialog class, which does both dialogs and MDI, but the MDI is treated separately from the Dialog mode (they don't mix). You might say, it is one window class, that it can behave like multiple classes.
DDT's use of the Windows Dialog engine may make it difficult to add MDI in the future. The only way I see MDI being added, is if DDT added a custom window class internally, rather than use the Dialog class.
MDI needs to be able via a custom window class or through a superclass (still a custom window class) of another class. Subclassing an existing class simply may not work, which is currently the only way to do it with DDT. I have tried.
Leave a comment:
-
Originally posted by Michael Mattias View Post> But there is a ddistinction between dialogs and window procedures.
And?
Every programmer should create at least one application in which windows are created via CreateWindowEx. (And probably DialogBox and CreateDialog, too).
Once you can 'do' a window procedure, incorporating it into an MDI application is pretty straightforward. But you do have be able to create a "conventional" window procedure.
There's a real nice example of an MDI application in the samples folder provided with the compiler (thru 8x, anyway). I think its called "pbedit" or something like that.
There is one handy PB thing I've used with sdk and that is the CALLBACK FUNCTION. Get to use all the new CB. goodies.
James
Leave a comment:
-
> But there is a ddistinction between dialogs and window procedures.
And?
Every programmer should create at least one application in which windows are created via CreateWindowEx. (And probably DialogBox and CreateDialog, too).
Once you can 'do' a window procedure, incorporating it into an MDI application is pretty straightforward. But you do have be able to create a "conventional" window procedure.
There's a real nice example of an MDI application in the samples folder provided with the compiler (thru 8x, anyway). I think its called "pbedit" or something like that.
Leave a comment:
-
Michael,
True, however, it would have been nice if DDT supported the creation of MDI windows as well. But there is a ddistinction between dialogs and window procedures.
Cheers
Steven
Leave a comment:
-
> miss the MDI capability of DDT
I don't speak for PowerBASIC Inc. and don't use "DDT" all that often, but thru 8x I have never seen any reference to DDT support for the Multiple Document Interface in any PowerBASIC documentation.
Unless I really missed something, MDI was supported by the compilers only via the correct use of the Windows' API functions, window classes, messages and notifications.
MCM
Leave a comment:
-
MDI in PB9 with DDT
I'm amazed by the vastness of this upgrade. So thank you, PB, for all the nice features. but as with all the 'wows' and 'cools' there is a bit of a 'ok, this would have been cool' too.
I miss the MDI capability of DDT which I was somehow hoping for. Maybe it's because MDI is dead ? Which I think, is not.
Maybe in another release ?
Cheers
StevenTags: None
Leave a comment: