Resources Templates
https://vahidmy.blog.ir/post/678
Resources Templates ...
The RosAsm Dialog Editor may output the Dialog Templates directly into the PE Resources Section. This method is simple and secure. It is well designed for all usual dialogs. You run them with:
call 'USER32.DialogBoxParam' , ...
Secure Styles
Dialog Managing of all Styles and Features, available for the various OS versions is a very complicated thing. Even for the simpler styles definitions the various Flags may conflict. Sometimes, one Style can be activated, only if another Style is also activated. Sometimes, two Styles cannot be selected together.
Other Dialogs Editors do not take care of this, they offer all of the available Styles and leave the choices responsibility to the user.
The RosAsm Dialog Editor takes care of these problems, with two Bits Tables for each Control Styles List:
The 'MustHaveBitTable'. When you select a Style requiring another Style the must have Bits are ORed.
The 'ExcludeBitTable'. Does the opposite: When you select a Style that conflicts with another enabled Style, the conflicting Style is removed.
These two features, -which are, in fact much more complicated than what I describe here...-, may save you from a lot of work and problems, especially of Documentation searches.
Limitations
Also, the purpose of the Dialog Editor is not to enable you with all of the various possible Styles and choices available under all OS versions. Just the opposite: It enables you with the more insured and simpler styles, that you may be sure to run under all OSes without any conflict problems. Of course, this choice results in some limitations.
But overcoming these limitations is not a problem. You have several ways for this. Of course, Memory_Templates, are the evident way for a complete freedom to define anything you want, but this way is also a bit more difficult to maintain, more painful to develop and more risky to use.
Another way for overcoming the Dialog Editor limitations is, simply, to do whatever customization you like, in the Dialog Procedure, with the &WM_INITDIALOG case. Example, as you may have noticed, the Extended Styles definition is not implemented in the Dialog Editor.
Now, let us suppose you want the Dialog to be a Tool-Window. You simply have to say:
.If D@Message = &WM_INITDIALOG
call 'USER32.SetWindowLongA' D@addressee, &GWL_EXSTYLE, &WS_EX_TOOLWINDOW
~~~~~~~