本文整理汇总了C++中CDlgBase::Create方法的典型用法代码示例。如果您正苦于以下问题:C++ CDlgBase::Create方法的具体用法?C++ CDlgBase::Create怎么用?C++ CDlgBase::Create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDlgBase
的用法示例。
在下文中一共展示了CDlgBase::Create方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitInstance
BOOL CDuiVisionDemoApp::InitInstance()
{
CWinApp::InitInstance();
AfxEnableControlContainer();
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("Blueant"));
// 初始化DuiVision界面库,可以指定语言,dwLangID为0表示自动判断当前语言
// 1116是应用程序ID,每个DUI应用程序应该使用不同的ID,ID主要用于进程间通信传递命令行时候区分应用
DWORD dwLangID = 0;
new DuiSystem(m_hInstance, dwLangID, _T("DuiVisionDemo.ui"), 1116, IDD_DUIVISIONDEMO_DIALOG, _T(""));
// 检查是否已经有进程在运行
CString strAppMutex = DuiSystem::Instance()->GetConfig(_T("appMutex")); // 从配置文件中获取互斥量名字
if(!strAppMutex.IsEmpty())
{
::CreateMutex(NULL,TRUE, _T("Global\\") + strAppMutex);
if(ERROR_ALREADY_EXISTS == GetLastError() || ERROR_ACCESS_DENIED == GetLastError())
{
// 读取命令行参数,如果不需要处理命令行可以直接退出
CString strCmd = L"";
if(__argc > 0)
{
strCmd = __targv[0];
DuiSystem::LogEvent(LOG_LEVEL_DEBUG, L"Command line:%s", strCmd);
}
// 发送进程间消息(lParam为1表示不显示界面,信息参数传递命令行参数)
DuiSystem::Instance()->SendInterprocessMessage(0, DuiSystem::Instance()->GetAppID(), 1, strCmd);
return FALSE; // Here we quit this application
}
}
// 创建主窗口
CDlgBase* pMainDlg = DuiSystem::CreateDuiDialog(_T("dlg_main"), NULL, _T(""), TRUE);
// 给主窗口注册事件处理对象
CDuiHandlerMain* pHandler = new CDuiHandlerMain();
pHandler->SetDialog(pMainDlg);
DuiSystem::RegisterHandler(pMainDlg, pHandler);
// 初始化提示信息窗口
DuiSystem::Instance()->CreateNotifyMsgBox(_T("dlg_notifymsg"));
// 按照非模式对话框创建主窗口,可以默认隐藏
pMainDlg->Create(pMainDlg->GetIDTemplate(), NULL);
//pMainDlg->ShowWindow(SW_HIDE);
INT_PTR nResponse = pMainDlg->RunModalLoop();
// 如果是按照模式对话框运行主窗口,只要改为如下代码就可以
//INT_PTR nResponse = pMainDlg->DoModal();
// 释放DuiVision界面库的资源
DuiSystem::Release();
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}