試しにSetHookWinProcで各キー関連のメッセージを無視しようとしましたが、
おそらくDxLib内部でもメッセージを処理しているため、AltとF10による一時停止を防げませんでした。
下記の例で文字は移動するので、AltやF10を押すと処理が止まることはわかりやすいです。
#include <DxLib.h>
LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(_In_ HINSTANCE _hInstance, _In_opt_ HINSTANCE _hPrevInstance, _In_ LPSTR _sCmdLine, _In_ int _iShowCmd)
{
UNREFERENCED_PARAMETER(_hInstance);
UNREFERENCED_PARAMETER(_hPrevInstance);
UNREFERENCED_PARAMETER(_sCmdLine);
UNREFERENCED_PARAMETER(_iShowCmd);
ChangeWindowMode(TRUE);
SetGraphMode(800, 600, 32);
SetHookWinProc(WndProc);
DxLib_Init();
SetDrawScreen(DX_SCREEN_BACK);
int xPos = 0; // 文字のx座標.
bool bReverseDirection = false; // 文字の移動方向を反転するか.
while (true)
{
// テスト用の文字を描画する.
DrawFormatString(xPos, 0, GetColor(255, 255, 255), "Test");
// ウィンドゥサイズを越えたら方向を反転する.
if (bReverseDirection) {
xPos -= 20;
if (xPos <= 0) {
bReverseDirection = !bReverseDirection;
}
}
else {
xPos += 20;
if (xPos >= 800) {
bReverseDirection = !bReverseDirection;
}
}
if (ScreenFlip() != 0 || ProcessMessage() != 0 || ClearDrawScreen() != 0) {
break;
}
}
DxLib_End();
return 0;
}
LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(hWnd);
UNREFERENCED_PARAMETER(msg);
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam);
switch (msg)
{
case WM_SYSKEYDOWN:
case WM_SYSKEYUP:
case WM_KEYDOWN:
case WM_KEYUP:
case WM_IME_KEYDOWN:
case WM_IME_KEYUP:
if ((wParam == VK_MENU) || wParam == VK_F10) {
// AltとF10を無視する.
return 0;
}
break;
default:
break;
}
return 0;
}