给你个函数:
BOOL IsStart(CString strCurProcessName)
{
//得到本进程的ID号
DWORD dCurProcessID = GetCurrentProcessId();
HANDLE hSnapShot = NULL;
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hSnapShot == NULL)
{
return FALSE;
}
PROCESSENTRY32 processinfo;
processinfodwSize = sizeof(PROCESSENTRY32);
BOOL status = Process32First(hSnapShot,&processinfo);
while(status)
{
if(strcmp(processinfoszExeFile,strCurProcessName) == 0 /已经启动了/ && \
processinfoth32ProcessID != dCurProcessID /但不是本进程/)
{
//说明已经启动了此进程
return TRUE;
}
status = Process32Next(hSnapShot,&processinfo);
}
return FALSE;
}
把程序名作为实参传入,然后用这个函数就可以进行判断了!
MFC才可以做到真正做到可视化(visual)。VC60貌似没有窗口程序的吧。Visual
Studio才有的。不过是用了net技术,应该是VC++NET。
VC60有的是Win32应用程序,这个就是基本用代码写的Win32程序,灵活,可以清晰的了解Windows程序的运行方式。
MFC多文档,禁止修改子窗口大小,对CChildFrame子框架设置窗体属性就可以了。
PreCreateWindow中添加:
固定大小:csstyle=WS_OVERLAPPED | WS_SYSMENU |WS_MINIMIZEBOX ;
给你个最最简单的MFC程序。你可以打开2005 新建win32 程序 建立空项目 然后编写如下代码//hellocpp
#include <afxwinh>
// 说明应用程序类
class CHelloApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
// 建立应用程序类的实例
CHelloApp HelloApp;
// 说明主窗口类
class CHelloWindow : public CFrameWnd
{
CStatic cs;
public:
CHelloWindow();
};
// 每当应用程序首次执行时都要调用的初始化函数
BOOL CHelloApp::InitInstance()
{
m_pMainWnd = new CHelloWindow();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
// 窗口类的构造函数
CHelloWindow::CHelloWindow()
{
// 建立窗口本身
Create(NULL,
"Hello World!",
WS_OVERLAPPEDWINDOW,
CRect(0,0,200,200));
// 建立静态标签
cs = new CStatic();
cs->Create("hello world",
WS_CHILD|WS_VISIBLE|SS_CENTER,
CRect(50,80,150,150),
this);
} 这样就出来了。
>
下面介绍怎样使用AppWizard 创建一个Win32窗口程序示例HelloWorld,步骤如下:
1. 在File菜单上,单击New菜单项,d出New对话框。
2. 在出现的对话框中选择Projects 标签,从左边的列表框中选择项目类型: Win32 Application,在Project
name框中,输入新项目名:Ex1_2,并指定项目存贮位置,如图1-36 所示。
图 1-36 Win32 窗口程序创建选项
3. 在Platforms框中,指定项目的开发平台,确认“Win32”被选中。
4. 输入完以上内容后,单击“OK”按钮,根据所选的项目类型,会出现相应的Wizard(向导),如图
1-37所示。
图 1-37 Win32 窗口程序类型选择
5. 选择A typical“Hello World”application单选按钮,单击“Finish”按钮,生成总结如图 1-38 所示。
图 1-38 生成总结
6. 单击“OK”按钮,将生成项目框架。
在本例中,AppWizard生成了如下文件:
(1) 头文件Ex1_2h
这是应用程序的主头文件,它含有所有全局符号和用于包含其他头文件的#include 伪指令。
(2) 源文件Ex1_2cpp
这个文件是应用程序的主源文件。
(3) 资源文件
AppWizard 会创建一些与资源相关的文件。如:Ex1_2RC,RESOURCEH,Ex1_2rc2,这是项目
的头文件及其资源文件。资源文件含有一般应用程序的默认菜单定义和加速键表、字符串表。它还指定
了默认的 About 对话框和一个图标文件(RES\Ex1_2ICO)。Ex1_2rc2 用于存放 Visual Studio 不可直接
编辑的资源。
(4) 预编译头文件 第一章 VC++60 开发环境
25
STDAFXCPP和STDAFXH这两个文件用于建立一个预编译的头文件Ex1_2PCH 和一个预定义的
类型文件 STDAFXCPP。
7. 按“CTRL+F5”或工具栏按钮 ,编译、链接并运行程序,得到画面如图1-39 所示
以上就是关于MFC在程序中判断窗口是否已经运行全部的内容,包括:MFC在程序中判断窗口是否已经运行、windows窗体应用程序和MFC有什么区别、mfc 多文档程序 禁止改变子窗体大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)