把OnRadioRegister()所要实现的功能单独写个函数,让OnRadioRegister()调用你写的函数完成相应的功能,
这样一来你就可以任意调用自己的函数了,和调用OnRadioRegister()一样
这样一来你就可以任意调用自己的函数了,和调用OnRadioRegister()一样
解决方案 »
- left of '->hParent' must point to class/struct/union/generic type 什么意思?
- 有做过越南版本的吗?请指教下
- accept 得到的socket 是阻塞的还是非阻塞的
- vc++ 简单问题
- 一个关于远程抓屏的问题
- 为什么我的程序这么耗CPU资源?
- 怎么判断一个gif文件是动画
- 如何用vc自动生成含有特定内容的word文档?
- 能不能给个解压zip包的程序,能把里面的文件解压到某个目录下面,100分送上,谢谢了!!
- sdk中使用cevent类
- &&&&&&急急急,关于winsock的服务器端如何实现其一直处于监听状态,请高手赐教&&&&&&&
- 关于edit box的问题
应该在dlg的OnInitDialog()里用
GetDlgItem(IDC_MYRADIO1)->SendMessage(BM_CLICK);
自动按下这个radio按钮
CFTSampleRegDlg::CFTSampleRegDlg dlg(BOOL bInitSel)
:CDialog(CFTSampleRegDlg::IDD, NULL)
{
m_InitSel=bInitSel;
}
在dlg的OnInitDialog()里用
if(m_InitSel)
GetDlgItem(IDC_MYRADIO1)->SendMessage(BM_CLICK);
自动按下这个radio按钮调用时;
if (dlg.DoModal(TRUE) == -1)
AfxMessageBox("指纹注册失败,请再试一次!");
我已经有一个构造函数,原型是:
CFTSampleRegDlg::CFTSampleRegDlg(CWnd* pParent /*=NULL*/): CDialog(CFTSampleRegDlg::IDD, pParent)
我改成
CFTSampleRegDlg::CFTSampleRegDlg(long al_sel)
: CDialog(CFTSampleRegDlg::IDD,NULL)后,
编译时提示没有适当的构造函数?
怎么办?
也可能cpp里改的和头里改的不一致?
如果不可能改,只好构造函数只好定义成
CFTSampleRegDlg(CWnd* pParent=NULL,long al_sel=0): CDialog(CFTSampleRegDlg::IDD, pParent);
CFTSampleRegDlg(CWnd* pParent=NULL,long al_sel=0);
in .cpp file
CFTSampleRegDlg::CFTSampleRegDlg(CWnd* pParent,long al_sel): CDialog(CFTSampleRegDlg::IDD, pParent)
但是系统提示DoModal没有参数,所以我用一个全局变量做了。
我想再问您一个问题,如何能做一个关闭那个对话框的函数?
我想了好久,但是想不出来:-(
(明天结帐好吗?如果这问题也解决了,再加100分)
CSubDlg* g_dlg=NULL;主程序要弹出对话框时:
g_dlg = new CSubDlg;
g_dlg->DoModal();//...主程序停在这里
..//SubDlg对话框关闭后执行到这里
delete g_dlg;
g_dlg=NULL;主程序里用于关闭模式对话框的函数
void CMainDlg::ShutModal(CDialog* mdlg)
{
if(mdlg && mdlg->GetSafeHwnd())
{
mdlg->SendMessage(WM_COMMAND, IDCANCEL);
}
}由于DoModal()退出之前,主窗口不接受任何键盘鼠标事件
所以主程序要关闭子对话框的时候,必须是在响应外部消息的时候,或是在另一个线程中,调用ShutModal函数
比如在主程序的OnTimer()里(在上面的g_dlg = new CSubDlg;这行之前加一个SetTimer(1,5000,NULL);对话框弹出5秒,然后自动关闭)
void CMainDlg::OnTimer(UINT nIDEvent)
{
ShutModal(g_dlg);
CDialog::OnTimer(nIDEvent);
//这个执行之后上面的g_dlg->DoModal();就会退出,对话框关闭
}