规则dll中提供了一个导出函数,这个函数的具体代码如下:void f()
{
CXXDialog* pDlg=new CXXDialog();
pDlg->Create(IDD_VTS_DIALOG,NULL)l;
pDlg->Show(SW_SHOW);
}然后重载了 对话框的PostNcDestroy函数, 这样带来一个麻烦问题。。
就是当exe去加载dll, 调用这个函数的时候, 函数立即创建一个非模式对话框,但是对话框一闪就没有了我的这个dll中的对话框必须用非模式的, 怎么防止一闪而过啊????救命啊
{
CXXDialog* pDlg=new CXXDialog();
pDlg->Create(IDD_VTS_DIALOG,NULL)l;
pDlg->Show(SW_SHOW);
}然后重载了 对话框的PostNcDestroy函数, 这样带来一个麻烦问题。。
就是当exe去加载dll, 调用这个函数的时候, 函数立即创建一个非模式对话框,但是对话框一闪就没有了我的这个dll中的对话框必须用非模式的, 怎么防止一闪而过啊????救命啊
因为作用域问题 函数走完你的pDlg就失效鸟
所以会出现一闪而过的情况
当然这个pDlg一旦走完函数就挂了如果想不让它一闪而过,那么可以加: MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} 为什么不加会一闪而过,加了之后,不会闪啊??求原因。。
如果程序本身就是基于对话框,在App中,一旦new了对话框,不管是全局,还是局部,一闪而过。。(除非加消息循环)
感谢各位说的不对,希望再回帖中跟正
如果还是会闪,。那么加消息循环