先说下我的问题吧。
我在VC6.0下建了一个MFC EXE的对话框工程和一个MFC Regular DLL工程。
在DLL中插入了一个非模对话框,我要通过EXE对话框上的按钮消息来触发将DLL对话框显示出来,并且(这就是困扰我的问题)希望点击任意一个对话框都能使它在另一个前面。但是不能在DLL的构造中实现(这样我能实现它,但只能是两个对话框一起弹出来了),只能通过EXE的按钮消息触发它。
望高手不吝赐教!小弟先谢过了!
我在VC6.0下建了一个MFC EXE的对话框工程和一个MFC Regular DLL工程。
在DLL中插入了一个非模对话框,我要通过EXE对话框上的按钮消息来触发将DLL对话框显示出来,并且(这就是困扰我的问题)希望点击任意一个对话框都能使它在另一个前面。但是不能在DLL的构造中实现(这样我能实现它,但只能是两个对话框一起弹出来了),只能通过EXE的按钮消息触发它。
望高手不吝赐教!小弟先谢过了!
解决方案 »
- CXXXView中放置了一个CMFCTabCtrl,GetActiveView只能获得CMFCTabCtrl的子窗口,怎样获得CXXXView的指针呢?
- 复杂结构重载= 问题
- 如何判断运行程序和监控的程序是一致的?
- 关于进程中子窗口的关闭的问题
- 急问: 马上要实现一个功能,VC6左边窗口上下左右拖动,然后固定到相应位置,一点也不会,不难吧?
- 请教:CAsyncSocket 多次发送数据的问题
- 大侠帮帮忙,怎么能使用象隶书、仿宋这样的艺术型字体?
- 如何让主窗口的toolbar显示在最下方。并加button在主窗口的右方
- 请教关于GetFileSize的问题!?
- MFC中使用sqlite3数据库时建表失败
- 在CView继承类中设置定时器问题
- 在线的等答复!!RTP利用全代理(Full Proxy方式) 能否穿越对成型(Symmetric) NAT??
case IDM_GOTO:
if (!IsWindow (hwndGoto)) {
hwndGoto = CreateDialog (hinst, MAKEINTRESOURCE (DLG_GOTO), hwnd, (DLGPROC) GoToProc);
ShowWindow (hwndGoto, SW_SHOW);
}
这样似乎不行吧?我是希望通过exe对话框的按钮来触发调用DLL中的接口函数,然后在接口函数中来显示DLL的对话框,所以不能获得父窗口的句柄啊!
最重要的是我希望DLL对话框显示出来后不要老是挡着父窗口,当点击它们任意一个窗口时能显示在最前面。
case IDM_GOTO:
if (!IsWindow (hwndGoto)) {
hwndGoto = CreateDialog (hinst, MAKEINTRESOURCE (DLG_GOTO), hwnd, (DLGPROC) GoToProc);
ShowWindow (hwndGoto, SW_SHOW);
}
1.对dll接口进行改造,增加返回值(就是dll中非模态对话框的句柄,或CDialog指针 ),增加个参数
该参数就是父窗口指针或句柄.
2.dll中对话框句柄有了,你怎么操作都行
SetwindowPos函数对dll对话框控制其Z轴方向.
我试过在DLL对话框类的构造或者初始化对话框函数中创建显示对话框可以实现,但是这样两个对话框就一起弹出来了,我是希望用exe的对话框按钮来触发它。
高手们,我到底该怎样做啊???
extern "C" __declspec (dllexport)
void ShowDlg()
{
hwndDlg = CreateDialog (hDll, MAKEINTRESOURCE (IDD_DLG_SHOW), NULL, (DLGPROC) DlgProc);
ShowWindow (hwndDlg, SW_SHOW);
}最后按钮指定行为里ShowDlg();一下