把控制台窗口的系统关闭按钮变灰

实现起来不难

 

调用WIN32 API函数

 

GetSystemMenu取得窗口系统按钮句柄

 

HMENU hMenu = GetSystemMenu(hWnd, FALSE);

 

然后用EnableMenuItem把某个按键变灰....

 

以下给出测试代码:

 

 

 

#include

HWND GetConsoleHandle()
{
    HWND        hWnd;
#define BUFFERSIZE  1024
    TCHAR       szOldCaption[BUFFERSIZE];
    TCHAR       szNewCaption[BUFFERSIZE];

    GetConsoleTitle(szOldCaption, sizeof (szOldCaption));
    wsprintf(szNewCaption, "%d:%d", GetTickCount(), GetCurrentProcessId());
    SetConsoleTitle(szNewCaption);
    Sleep(40);
    hWnd = FindWindow(NULL, szNewCaption);
    SetConsoleTitle(szOldCaption);

    return hWnd;
}

int main(void)
{
    HWND        hWnd;

    hWnd = GetConsoleHandle();

    HMENU hMenu = GetSystemMenu(hWnd, FALSE);
    EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_DISABLED);

    return 0;
}

你可能感兴趣的:(VC,api,null,测试)