修改MFC程序图标

修改MFC程序图标,第1张

修改历亩宽MFC程序图标步骤:

1、从电脑屏幕右边缘向中间耐坦轻扫,然后点击“搜索”;

2、接着在搜索框中输入“MFC程序图标”;

3、点击或单击“校准笔和触控输入的屏幕”;

4、打开“肢亮MFC程序图标设置”;

5、检查“显示”字段中显示的显示器是否与要校准的屏幕相匹配;

6、点击或单击“校准”,然后按照屏幕上的说明进行 *** 作;

7、将MFC程序图标账号及密码输入电脑中;

8、保存设置后即可修改MFC程序图标。

在MFC中显示进程名和进程图标,需要使用Windows API函数来获取进程信息和图标资源,然后将信息和图标显示在MFC界面上。具体步骤如下:

获取进程信息:使用Windows API函数EnumProcesses枚举系统中所有进程的ID,宴数搏然后使用OpenProcess函毕颤数打开进程句柄,调用GetModuleFileNameEx函数获取进程名。

获取进程图标:使用Windows API函数ExtractIconEx获取进程程序文件的图标资源,然后使用GetIconInfo函数获取图标信息,使用CreateIconIndirect函数创建图标。

在MFC界面上显示进程名和图标:在对话框中添加一个列晌祥表框控件,使用InsertItem函数向列表框中添加项,然后使用SetItemText函数设置项的文本,使用SetItemImage函数设置项的图标。

示例代码如下:

C++

Copy code

// 遍历进程

void CProcessDlg::EnumerateProcesses()

{

DWORD aProcesses[1024], cbNeeded, cProcesses

if (!EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded))

return

cProcesses = cbNeeded / sizeof(DWORD)

for (int i = 0i <cProcessesi++)

{

// 打开进程句柄

HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i])

if (!hProcess) continue

// 获取进程名

TCHAR szProcessName[MAX_PATH] = { 0 }

if (GetModuleFileNameEx(hProcess, NULL, szProcessName, MAX_PATH))

{

// 获取进程图标

HICON hIcon = NULL

int nIcons = ExtractIconEx(szProcessName, -1, NULL, &hIcon, 1)

if (nIcons == 1 &&hIcon)

{

ICONINFO info

GetIconInfo(hIcon, &info)

// 创建图标

HICON hNewIcon = CreateIconIndirect(&info)

if (hNewIcon)

{

// 添加项到列表框

int nIndex = m_listProcess.InsertItem(0, szProcessName)

m_listProcess.SetItemText(nIndex, 1, _T("描述信息"))

m_listProcess.SetItemImage(nIndex, (LPARAM)hNewIcon)

}

DestroyIcon(hIcon)

DestroyIcon(hNewIcon)

}

}

CloseHandle(hProcess)

}

}

这段代码会遍历系统中所有进程,获取进程名和图标信息,并将它们添加到对话框的列表框中。注意需要在对话框的OnInitDialog函数中调用此函数,以便在对话框初始化时显示进程信息。

create 第四个参数为程序图标的标识符,为0时是默认的Windows徽标。与光标同样,

需要自定义图标时,添加设置图标的语句,例如:

AfxGetMainWnd()->SetIcon(AfxGetApp()->LoadStandardIcon(IDI_EXCLAMATION),FALSE)

与设置光标不同的是,设置光标的函数是全局函数,而设置图标的函数是

CWinApp类的成员函绝消升卜数(因为图标只在窗体内有效),故在函数调用之前需要用系

统函数AfxGetMainWnd()来获取当前主窗体的句柄,再用CWinApp的LoadStandardIcon()

成员函数来读取系统图标并返回一个图标的句柄,最后CFrameWnd类的SetIcon()

成员函数将并笑知窗体的图标设置为刚才返回的图标句柄。


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

原文地址:https://54852.com/yw/12331861.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存