dll文件与模态和费模态对话框的建立

来源:互联网 发布:网络预警包括 编辑:程序博客网 时间:2024/04/30 16:39

  dll文件的创建我用到的窗口有模态和非模态的

       其中模态窗口的建立 DialogBox(g_hInstance, MAKEINTRESOURCE(IDD_DLG_ERROR), hParent, (DLGPROC)DlgProc);

回调函数Dlgproc中都是消息响应函数,调用的时候需要在工程中配置dll文件的路径,将编译好的lib和dll文件放到路径中,设备中运行只需要放置dll文件就好

        非模态对话框

HWND hdlg;
hdlg = CreateDialog(g_hInstance,MAKEINTRESOURCE(IDD_DLG_ERROR),NULL,(DLGPROC)DlgProc);
//显示对话框
ShowWindow(hdlg,SW_SHOW);
//更新对话框
UpdateWindow(hdlg);

MSG msg;
while(GetMessage(&msg,NULL,0,0))//接受所有的消息
{
   TranslateMessage(&msg);//解析消息
   DispatchMessage(&msg); //派发消息
}

        一样回调函数是消息响应,而在dll中定义函数给上层使用的时候,不能在同一个函数中连续调用两个,可以在初始化中定义定时器,判断窗口句柄是否存在,存在则销毁窗口,而上层如果调用dll的显示函数,sleep(3000)后执行销毁函数就进不到dll的销毁函数中,我不知道为什么,求高人指点