基于对话框的程序,主对话框CDlgMain读取数据并显示在列表中。在App::InitInstance下主对话框DoModal之前有一个登录对话框CDlgLogin,登录成功的同时,“想同时在主对话框中读取数据,读取完后,再调用CDlgLogin的OnOK或OnCancel退出登录对话框。App::InitInstance的代码如下:
BOOL CDlgMain::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); AfxEnableControlContainer(); // 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CDlgLogin dlgLogin;
if ( dlgLogin.DoModal() == IDOK )//在主对话框之前先弹出登录对话框,登录成功后才显示主对话框,而且在点击登录对话框中的登录按钮IDOK的时候,登录对话框并不立即执行CDialog::OnOK,而是要让主对话框读取并添加数据,完成后再执行CDialog::OnOK
{
}
else
{
} CDlgMain dlg;
m_pMainWnd = &dlg; //这个才是主对话框
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
} return FALSE;
}
但是问题是在点登录按钮的时候,CDlgMain还没有DoModal出来的,所以窗口的HWND为NULL的,那读取数据添加到ListCtrl就无法进行了。 怎么解决呢?
BOOL CDlgMain::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); AfxEnableControlContainer(); // 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CDlgLogin dlgLogin;
if ( dlgLogin.DoModal() == IDOK )//在主对话框之前先弹出登录对话框,登录成功后才显示主对话框,而且在点击登录对话框中的登录按钮IDOK的时候,登录对话框并不立即执行CDialog::OnOK,而是要让主对话框读取并添加数据,完成后再执行CDialog::OnOK
{
}
else
{
} CDlgMain dlg;
m_pMainWnd = &dlg; //这个才是主对话框
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
} return FALSE;
}
但是问题是在点登录按钮的时候,CDlgMain还没有DoModal出来的,所以窗口的HWND为NULL的,那读取数据添加到ListCtrl就无法进行了。 怎么解决呢?
解决方案 »
- 如何把TabCtrl嵌入到CFormView
- 有没有办法可以把一张包含图片、MP3文件的网页转成一张单一的网页,转换后的网页可以不依赖原素材直接浏览、播放?
- 日志文件的问题,想听听VC版兄弟们的看法!!
- 应该怎样给DX90SDK\Samples\C++\DirectShow\Capture\AMCap加上一个抓图的功能
- 高手指教,SHFileOperaton里的参数怎么设置
- cinifile,自己的格式,怎么解决为好啊?
- [版务]请不要再基础类版面发非技术贴、散分贴
- 这样的错误是怎么回事? '_far' is an obsolete keyword
- 急!!!请帮我看看为什么我的程序会有这种情况(100分).
- 谁知道怎么改变IE地址栏里面的东东?
- MFC 如何设置打印机为横向打印
- 请问如何用VC做和任务管理器里的“应用程序”那种文件列表,要一模一样,请教大家
这句之前,然后在 dlgLogin 不就可以调用 CDlgMain 读取数据的函数了。
读取数据的函数不要与控件关联