📄 applpage.c
字号:
DestroyMenu(hMenu);
}
void ApplicationPage_OnViewLargeIcons(void)
{
HMENU hMenu;
HMENU hViewMenu;
hMenu = GetMenu(hMainWnd);
hViewMenu = GetSubMenu(hMenu, 2);
TaskManagerSettings.View_LargeIcons = TRUE;
TaskManagerSettings.View_SmallIcons = FALSE;
TaskManagerSettings.View_Details = FALSE;
CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_LARGE, MF_BYCOMMAND);
UpdateApplicationListControlViewSetting();
}
void ApplicationPage_OnViewSmallIcons(void)
{
HMENU hMenu;
HMENU hViewMenu;
hMenu = GetMenu(hMainWnd);
hViewMenu = GetSubMenu(hMenu, 2);
TaskManagerSettings.View_LargeIcons = FALSE;
TaskManagerSettings.View_SmallIcons = TRUE;
TaskManagerSettings.View_Details = FALSE;
CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_SMALL, MF_BYCOMMAND);
UpdateApplicationListControlViewSetting();
}
void ApplicationPage_OnViewDetails(void)
{
HMENU hMenu;
HMENU hViewMenu;
hMenu = GetMenu(hMainWnd);
hViewMenu = GetSubMenu(hMenu, 2);
TaskManagerSettings.View_LargeIcons = FALSE;
TaskManagerSettings.View_SmallIcons = FALSE;
TaskManagerSettings.View_Details = TRUE;
CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_DETAILS, MF_BYCOMMAND);
UpdateApplicationListControlViewSetting();
}
void ApplicationPage_OnWindowsTileHorizontally(void)
{
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item;
int i;
HWND* hWndArray;
int nWndCount;
hWndArray = (HWND*)HeapAlloc(GetProcessHeap(), 0, sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl));
nWndCount = 0;
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_STATE|LVIF_PARAM;
item.iItem = i;
item.stateMask = (UINT)-1;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
if (item.state & LVIS_SELECTED) {
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
if (pAPLI) {
hWndArray[nWndCount] = pAPLI->hWnd;
nWndCount++;
}
}
}
TileWindows(NULL, MDITILE_HORIZONTAL, NULL, nWndCount, hWndArray);
HeapFree(GetProcessHeap(), 0, hWndArray);
}
void ApplicationPage_OnWindowsTileVertically(void)
{
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item;
int i;
HWND* hWndArray;
int nWndCount;
hWndArray = (HWND*)HeapAlloc(GetProcessHeap(), 0, sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl));
nWndCount = 0;
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_STATE|LVIF_PARAM;
item.iItem = i;
item.stateMask = (UINT)-1;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
if (item.state & LVIS_SELECTED) {
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
if (pAPLI) {
hWndArray[nWndCount] = pAPLI->hWnd;
nWndCount++;
}
}
}
TileWindows(NULL, MDITILE_VERTICAL, NULL, nWndCount, hWndArray);
HeapFree(GetProcessHeap(), 0, hWndArray);
}
void ApplicationPage_OnWindowsMinimize(void)
{
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item;
int i;
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_STATE|LVIF_PARAM;
item.iItem = i;
item.stateMask = (UINT)-1;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
if (item.state & LVIS_SELECTED) {
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
if (pAPLI) {
ShowWindow(pAPLI->hWnd, SW_MINIMIZE);
}
}
}
}
void ApplicationPage_OnWindowsMaximize(void)
{
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item;
int i;
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_STATE|LVIF_PARAM;
item.iItem = i;
item.stateMask = (UINT)-1;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
if (item.state & LVIS_SELECTED) {
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
if (pAPLI) {
ShowWindow(pAPLI->hWnd, SW_MAXIMIZE);
}
}
}
}
void ApplicationPage_OnWindowsCascade(void)
{
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item;
int i;
HWND* hWndArray;
int nWndCount;
hWndArray = (HWND*)HeapAlloc(GetProcessHeap(), 0, sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl));
nWndCount = 0;
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_STATE|LVIF_PARAM;
item.iItem = i;
item.stateMask = (UINT)-1;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
if (item.state & LVIS_SELECTED) {
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
if (pAPLI) {
hWndArray[nWndCount] = pAPLI->hWnd;
nWndCount++;
}
}
}
CascadeWindows(NULL, 0, NULL, nWndCount, hWndArray);
HeapFree(GetProcessHeap(), 0, hWndArray);
}
void ApplicationPage_OnWindowsBringToFront(void)
{
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item;
int i;
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_STATE|LVIF_PARAM;
item.iItem = i;
item.stateMask = (UINT)-1;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
if (item.state & LVIS_SELECTED) {
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
break;
}
}
if (pAPLI) {
if (IsIconic(pAPLI->hWnd))
ShowWindow(pAPLI->hWnd, SW_RESTORE);
BringWindowToTop(pAPLI->hWnd);
}
}
void ApplicationPage_OnSwitchTo(void)
{
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item;
int i;
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_STATE|LVIF_PARAM;
item.iItem = i;
item.stateMask = (UINT)-1;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
if (item.state & LVIS_SELECTED) {
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
break;
}
}
if (pAPLI) {
typedef void (WINAPI *PROCSWITCHTOTHISWINDOW) (HWND, BOOL);
PROCSWITCHTOTHISWINDOW SwitchToThisWindow;
HMODULE hUser32 = GetModuleHandle(_T("USER32"));
SwitchToThisWindow = (PROCSWITCHTOTHISWINDOW)GetProcAddress(hUser32, "SwitchToThisWindow");
if (SwitchToThisWindow) {
SwitchToThisWindow(pAPLI->hWnd, TRUE);
} else {
if (IsIconic(pAPLI->hWnd))
ShowWindow(pAPLI->hWnd, SW_RESTORE);
BringWindowToTop(pAPLI->hWnd);
SetForegroundWindow(pAPLI->hWnd);
}
if (TaskManagerSettings.MinimizeOnUse)
ShowWindow(hMainWnd, SW_MINIMIZE);
}
}
void ApplicationPage_OnEndTask(void)
{
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item;
int i;
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_STATE|LVIF_PARAM;
item.iItem = i;
item.stateMask = (UINT)-1;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
if (item.state & LVIS_SELECTED) {
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
if (pAPLI) {
PostMessage(pAPLI->hWnd, WM_CLOSE, 0, 0);
}
}
}
}
void ApplicationPage_OnGotoProcess(void)
{
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item;
int i;
/* NMHDR nmhdr; */
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_STATE|LVIF_PARAM;
item.iItem = i;
item.stateMask = (UINT)-1;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
if (item.state & LVIS_SELECTED) {
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
break;
}
}
if (pAPLI) {
DWORD dwProcessId;
GetWindowThreadProcessId(pAPLI->hWnd, &dwProcessId);
/*
* Switch to the process tab
*/
TabCtrl_SetCurFocus(hTabWnd, 1);
/*
* Select the process item in the list
*/
i = PerfGetIndexByProcessId(dwProcessId);
if (i != -1)
{
ListView_SetItemState(hProcessPageListCtrl,
i,
LVIS_SELECTED | LVIS_FOCUSED,
LVIS_SELECTED | LVIS_FOCUSED);
(void)ListView_EnsureVisible(hProcessPageListCtrl,
i,
FALSE);
}
}
}
int CALLBACK ApplicationPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
LPAPPLICATION_PAGE_LIST_ITEM Param1;
LPAPPLICATION_PAGE_LIST_ITEM Param2;
if (bSortAscending) {
Param1 = (LPAPPLICATION_PAGE_LIST_ITEM)lParam1;
Param2 = (LPAPPLICATION_PAGE_LIST_ITEM)lParam2;
} else {
Param1 = (LPAPPLICATION_PAGE_LIST_ITEM)lParam2;
Param2 = (LPAPPLICATION_PAGE_LIST_ITEM)lParam1;
}
return _tcscmp(Param1->szTitle, Param2->szTitle);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -