基于对话框的单实例应用程序
来源:互联网 发布:知已的诗句 编辑:程序博客网 时间:2024/05/22 14:01
介绍
有许许多多的文章介绍单示例应用程序的实现,这里演示一种非常简单的基于MFC对话框的应用程序,本技术可以运用到ATL/WTL和普通的win32应用程序。
实现
创建一个基于对话框的MFC工程。
打开资源文件(.rc),找到主窗口的模板,并添加一句话。把这个窗口类注册为SINGLE_INSTANCE_APP。
IDD_SINGLEINSTANCE_DIALOG DIALOGEX 0, 0, 320, 200STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENUEXSTYLE WS_EX_APPWINDOWCLASS "SINGLE_INSTANCE_APP"CAPTION "Single Instance Application"FONT 8, "MS Shell Dlg", 0, 0, 0x1BEGIN DEFPUSHBUTTON "OK",IDOK,263,7,50,16 PUSHBUTTON "Cancel",IDCANCEL,263,25,50,16 CTEXT "TODO: Place dialog controls here.",IDC_STATIC,10,96,300,8END
然后在InitInstance()函数起始位置加入如下代码://register window class nameWNDCLASS wc = {0};wc.style = CS_BYTEALIGNWINDOW|CS_SAVEBITS|CS_DBLCLKS;wc.lpfnWndProc = DefDlgProc;wc.cbWndExtra = DLGWINDOWEXTRA;wc.hInstance = m_hInstance;wc.hIcon = LoadIcon(IDR_MAINFRAME);wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);wc.hbrBackground = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));wc.lpszClassName = _T("SINGLE_INSTANCE_APP"); //this name is from dialog's templateATOM cls = RegisterClass(&wc);//check if our program is running alreadyCWnd* pWnd = CWnd::FindWindow(_T("SINGLE_INSTANCE_APP"), NULL);if (pWnd){pWnd->ShowWindow(SW_SHOW);pWnd->SetForegroundWindow();return FALSE;}
OK,测试一下吧!
- 基于对话框的单实例应用程序
- 1.3 基于对话框的MFC应用程序实例
- 基于MFC的单文档,多文档,对话框应用程序
- 创建MFC应用程序的类型:单文档+多文档+基于对话框
- 实现单实例的应用程序
- MFC应用程序类型:单文档、多文档与基于对话框
- 【MFC】应用程序类型:单文档、多文档与基于对话框
- 给基于对话框的应用程序添加快捷键
- 基于对话框的应用程序添加启动画面
- 基于对话框的应用程序添加启动画面
- 在基于对话框的应用程序上画图
- 基于对话框的MFC应用程序加入Accelerator
- 基于对话框的MFC应用程序加入Accelerator
- 基于单文档应用程序背景的修改
- WinCE下应用程序的单实例运行
- WinCE下应用程序的单实例运行
- windows应用程序单实例
- MFC的ADO实例(基于VC2012对话框实例)
- 会话跟踪
- 用环境变量控制c/c++的条件编译
- QT学习笔记 QTimer 与信号 槽
- OCP-043 SHRINK SPACE CASCADE
- Request.ServerVariables的用法
- 基于对话框的单实例应用程序
- ubuntu_Install Android SDK on Ubuntu 12.04 LTS
- Struts2拦截器实现原理的理解
- Activity的四种launchMode
- 大数据量,海量数据 处理方法总结
- Rdlc报表出现空白页解决方法
- android activity 生命周期详解
- Oracle中的case when then 用法.
- 条款5:了解C++默默编写并调用哪些函数