关于DLL封装登陆对话框的问题

梧桐126 2010-07-09 02:01:17
大家好,我现在想把一个登陆对话框封入一个DLL中,但是遇到一个问题,希望大家给点注意,谢谢!

在我的想法里面是输入用户名和密码,然后点击登陆按扭,验证之后要弹出一个对话框,弹出的对话框不在DLL中,是在调用DLL的新的工程中,那么DLL中怎么处理登陆这个按扭的消息响应函数?怎么留接口?是用回掉函数吗?具体怎么实现,拜谢大家!

最好能给出关键部分的代码,急用!!!!!!!!!!!
...全文
112 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
梧桐126 2010-07-12
  • 打赏
  • 举报
回复
谢谢大家的帮助!
Kevin_Perkins 2010-07-09
  • 打赏
  • 举报
回复
3楼的想法是正确的。自己创建一个对话框,创建上面的控件,让用户填写用户名和密码。输出一个函数,返回真或假,因为对话框的DoModle,函数会阻塞住,根据用户的输入情况,返回真或假,控制你的程序流程。
buyong 2010-07-09
  • 打赏
  • 举报
回复
If your dll is not writen by C++. you can use call back function.
Otherwise you can export your Dialog Class.
hahaking119 2010-07-09
  • 打赏
  • 举报
回复
OnOK和OnCancel少了void
hahaking119 2010-07-09
  • 打赏
  • 举报
回复

// 简单写一下
class ILoginNotifier
{
public:
virtual ~ILoginNotifier() {}
// 回调接口可以修改,根据用户名和密码的校验,当然还可以根据回调结果判断登录对话框是否可以关闭什么的
virtual void OnNotifyLoginResult(BOOL bLogin, const CString& strUserName, const CString& strPassword) = 0;
};

// dll登录类
class CLoginDialog : public CDialog
{
public:
CLoginDialog(CWnd* pParent = NULL)
: CDialog(IDD, pParent)
, m_pNotifier(NULL)
, m_strUsername(_T(""))
, m_strPassword(_T(""))
{

}
CLoginDialog(ILoginNotifier* pNotifier, CWnd* pParent = NULL)
: CDialog(IDD, pParent)
, m_pNotifier(pNotifier)
, m_strUsername(_T(""))
, m_strPassword(_T(""))
{

}

virtual OnOK()
{
ASSERT(m_pNotifier && !m_strUsername.IsEmpty() && !m_strPassword.IsEmpty());
if ( m_pNotifier )
{
m_pNotifier->OnNotifyLoginResult(TRUE, m_strUsername, m_strPassword);
}
CDialog::OnOK();
}

virtual OnCancel()
{
ASSERT(m_pNotifier);
if ( m_pNotifier )
{
m_pNotifier->OnNotifyLoginResult(FALSE, CString(), CString());
}
CDialog::OnCancel();
}


enum { IDD = IDD_LOGINDIALOG };



protected:
ILoginNotifier* m_pNotifier;
CString m_strUsername;
CString m_strPassword;
};

// dll导出函数
void ShowLoginDlg(ILoginNotifier* pNotifier)
{
CLoginDialog _loginDlg(pNotifier);
_loginDlg.DoModal();
}

向立天 2010-07-09
  • 打赏
  • 举报
回复
这个对话框你想怎么调用呢?
不就是通过类声明对象然后DoModule么
那把所有东西都写在dll里
然后通过DoModule的返回值判断不就行了么
怎么又是回调函数又是接口的
梧桐126 2010-07-09
  • 打赏
  • 举报
回复
自己顶一下...........

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧