/************************************************************************/
/* 灰色按键激活
参考API:
SetWindowPos GetForegroundWindow EnumChildWindows
2011/2/23 bysdy915
-------------------------------------------------------------------------
*/
/************************************************************************/
#include <windows.h>
#include <Strsafe.h>
#include "resource.h"
HINSTANCE g_hInstance;
HANDLE g_hEvent;
LRESULT CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow )
{
g_hInstance = hInstance;
DialogBoxParam(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgProc,0);
return 0;
}
//EnumChildWindows函数的回调函数
BOOLCALLBACK EnumChildProc(HWNDhwndChild, LPARAMlParam)
{
if(!IsWindowEnabled(hwndChild))
{
EnableWindow(hwndChild,TRUE);
returnTRUE;
}
}
//激活功能执行线程
void_ActiveGbutton(HWNDhwnd)
{
HWNDhFirstWindow=NULL,hTemp=NULL;
charcbuff[100]={0};
while(1)
{
WaitForSingleObject(g_hEvent,INFINITE);
hTemp = GetForegroundWindow();
//相同窗口已经激活
if(hTemp==hwnd||hFirstWindow==hTemp||hTemp==NULL){
Sleep(50);
continue;
}
hFirstWindow = hTemp;
//sprintf(cbuff,"handle = %d",hFirstWindow);
//MessageBoxA(NULL,cbuff,NULL,MB_OK);
//枚举子窗口
EnumChildWindows(hFirstWindow,(WNDENUMPROC)EnumChildProc, NULL);
}
return;
}
LRESULT CALLBACK DlgProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
HICON hIcon;
staticintbActive=FALSE;
switch(uMsg)
{
case WM_INITDIALOG:
//hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(MYICON));
//SetClassLong(hwnd,GCL_HICON,(long)hIcon);
//对话框置顶
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_SHOWWINDOW|SWP_NOSIZE|SWP_NOMOVE);
g_hEvent = CreateEventA(NULL,TRUE,FALSE,NULL);
//建立激活线程
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_ActiveGbutton,hwnd,0,NULL);
break;
case WM_COMMAND:
{
switch(wParam)
{
case IDOK:
//开始执行灰化按钮的激活
//改变按键显示
SetDlgItemTextA(hwnd,IDOK,bActive==FALSE?"Stop":"Start");
bActive=!bActive;
if(bActive==TRUE)
SetEvent(g_hEvent);
else
ResetEvent(g_hEvent);
break;
case IDCANCEL:
EndDialog(hwnd,1);
break;
}
}
break;
}
return false;
}
灰色按键激活小程序
最新推荐文章于 2020-11-22 15:21:33 发布