易语言界面库的实现(三)对话框的设计。

    何为对话框。就是用来和你对话的框框。既然是和你对话。自然要得到一个对话的结果。哈……

 

    Windows的对话框是一个经过一定封装的窗口。(这个封装了不得,你连消息都要IsDialogMessage^_^)。

 

    对话框在你点击关闭按钮的时候会产生一个 菜单事件(也有称呼为命令事件) 反正就是 WM_COMMAND里的。LOWORD(wParam) 值为2 这个2就是 IDCANCEL。

 

    对话框创建,并不立即显示。因为你还要决定它是用模态显示,还是用非模态…………。至于非模态,我看和窗口差不了多少。

 

    在我的设计里面,模态对话框有自己的消息循环。模态对话框点击关闭按钮不会关闭窗口而仅仅产生一个 IDCANCEL事件。所有的东西都必须你的程序确认里,显式关闭它。调用 对话框.显示模态()。会有一个模态对话框出来。程序会在这里停顿(不要问我为啥。哈哈。因为进入了一个新的消息循环……)模态对话框关闭的时候。可以传递一个返回值。这就是我们告诉对话框对话结果的途径。哈哈…….如下:

 

      对话框返回值=对话框.显示模态();

      对话框关闭后,这里的返回值就是你要得到的“对话结果了”

 

      对话框不能销毁,当然。你也可以销毁它。但是 自从创建后,。你用 显示() 关闭模态()。对话框都不会销毁。所以对话框你只需要创建1次。可以多次使用。

 

      易语言的一个bug,。继承类显式调用被覆盖的基类的方法的时候。如果这个类封装在模块里。则无论如何也只能调用到类自身。重复调用一个函数的后果很严重。无限递归。直到栈溢出!

 

      这个bug让我很受伤。意味着我的库因为易的一个bug而无法发布。永远停留在调试版阶段。希望公司有关方面能够重视起来。

你可能感兴趣的:(windows,command,语言)