MFC在程序中判断窗口是否已经运行

MFC在程序中判断窗口是否已经运行,第1张

给你个函数:

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 多文档程序 禁止改变子窗体大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9738541.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存