||
在VC软件上面点击“插入—>窗体”弹出对话框,将名称改为IPlotX,然后确定,图如下:
在lbDlg.h中添加#include
"iPlotX.h"如下图所示:
在lbDlg.h为lbDlg类添加private成员变量private: iPlotX
*dlg;如下图所示:
在lbDlg类的构造函数中初始化成员变量dlg=NULL;如下图所示:
将串口控件上面的确定按钮改为“示波器”按钮并改函数名如下图所示:
在函数中添加如下代码:注意此段代码是判断是防止重复打开,同时Create函数的第二个参数用的GetDesktopWindow()作用是使弹出的非模态对话框不会总是在主对话框上面。如果需要总是在上面可以用this代替。
{
dlg=new iPlotX;
dlg->Create(IDD_IPLOTX_DIALOG,GetDesktopWindow());
}
dlg->ShowWindow(SW_SHOW);
}
如下图所示:
接着为对话框添加销毁函数,右击新建立的对话框面板选择建立类向导,然后在IPlotX的Message Maps中找到PostNcDestroy消息,然后双击,然后点击Edit Code在弹出的函数中添加 delete this;//删除对象本身 如下图所示:
然后在主Dialog中建立类向导然后同样添加PostNcDestroy消息,然后编辑代码delete dlg;这个代码十分重要,当不先关闭子对话框而先关闭主对话框的话,这句话就起作用了,不加这句话,会导致程序无响应。如下图:
现在编译单击“示波器”按钮将能够弹出刚刚新建的对话框了。