File "CenterMsgbox.inc"

Path: /ComicDir2Cbr/inc/CenterMsgbox.inc
File size: 1.47 KB
MIME-type:
Charset: utf-8


#INCLUDE ONCE "WIN32API.INC"

GLOBAL hHookMsgBox AS LONG
GLOBAL hDlgMsgBox AS LONG

FUNCTION CenterMessageBox_CB (BYVAL lMsg AS LONG, BYVAL wParam AS LONG, BYVAL lParam AS LONG) AS LONG
    LOCAL rc1  AS RECT
    LOCAL rc2  AS RECT
    LOCAL x    AS LONG
    LOCAL y    AS LONG

    IF lMsg = %HCBT_ACTIVATE THEN
        IF hDlgMsgBox <> %HWND_DESKTOP THEN
            GetWindowRect hDlgMsgBox, rc1
            GetWindowRect wParam, rc2
            x    = (rc1.nLeft + rc1.nRight - rc2.nRight + rc2.nLeft) / 2
            y    = (rc1.nTop + rc1.nBottom - rc2.nBottom + rc2.nTop) / 2
            SetWindowPos wParam, %NULL, x, y, 0, 0, %SWP_NOSIZE   ' Or %SWP_NOACTIVATE
            'SetWindowPos wParam, %HWND_TOPMOST, x, y, 0, 0, %SWP_NOSIZE   ' Or %SWP_NOACTIVATE
        END IF
        UnhookWindowsHookEx hHookMsgBox
    END IF
END FUNCTION

FUNCTION CenterMessageBox (BYVAL hDlg AS DWORD, pMsg AS STRING, pCaption AS STRING, BYVAL pStyle AS LONG) AS LONG
    hDlgMsgBox  = hDlg
    hHookMsgBox = SetWindowsHookEx(%WH_CBT, CODEPTR(CenterMessageBox_CB), GetModuleHandle(BYVAL 0&), GetCurrentThreadId)
    FUNCTION    = MessageBox (hDlg, (pMsg), (pCaption), pStyle)
END FUNCTION

FUNCTION CMSGBOX (BYVAL hDlg AS DWORD, pMsg AS STRING, pCaption AS STRING, BYVAL pStyle AS LONG) AS LONG
    hDlgMsgBox  = hDlg
    hHookMsgBox = SetWindowsHookEx(%WH_CBT, CODEPTR(CenterMessageBox_CB), GetModuleHandle(BYVAL 0&), GetCurrentThreadId)
    FUNCTION    = MessageBox (hDlg, (pMsg), (pCaption), pStyle)
END FUNCTION