トップページ > 記事閲覧
マウスの座標がずれる
名前:ぶー 日時: 2024/08/06 05:36

透過ウィンドウを使ってソフトを作っていたのですが、マウスの座標が10px左にずれていて困っています… 原因・解決法等教えて頂きたいですm(__)m ttps://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=3384 上記で提示されているコードに背景とマウスの座標を描画する機能を加えただけでも確認しました。 背景は透過ウィンドウの範囲を分かりやすくするためのもので、黒1色塗りつぶしです。 #include"DxLib.h" int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd) { int GraphHandle; int ScreenHandle; int SoftImageHandle; int PreMulAlphaFontHandle; int SCREEN_W = 1408; int SCREEN_H = 792; int MouseX, MouseY; // ウインドウモードで起動 ChangeWindowMode(TRUE); // 透過ウインドウ設定 SetUseBackBufferTransColorFlag(TRUE); // 画面サイズを設定 SetGraphMode(SCREEN_W, SCREEN_H, 32); // DXライブラリの初期化 if (DxLib_Init() < 0) return -1; // 描画対象にできるアルファチャンネル付き画面を作成 ScreenHandle = MakeScreen(SCREEN_W, SCREEN_H, TRUE); // 描画結果取り込み用のソフトウエア用画像を作成 SoftImageHandle = MakeARGB8ColorSoftImage(SCREEN_W, SCREEN_H); // 画像を読み込む際にアルファ値をRGB値に乗算するように設定する SetUsePremulAlphaConvertLoad(TRUE); // 画像の読み込み GraphHandle = LoadGraph("BG.png"); // 画像を読み込む際にアルファ値をRGB値に乗算する設定を解除する SetUsePremulAlphaConvertLoad(FALSE); // 乗算済みアルファ対応のフォントハンドルを作成する設定にする SetFontCacheUsePremulAlphaFlag(TRUE); // アンチエイリアスつきフォントの作成 PreMulAlphaFontHandle = CreateFontToHandle(NULL, 32, 8, DX_FONTTYPE_ANTIALIASING_8X8); // 乗算済みアルファ対応のフォントハンドルを作成する設定を解除する SetFontCacheUsePremulAlphaFlag(FALSE); // 透過色を紫に設定 // ( 透過色の部分が強制的に透過されてしまうため、使用されにくい色に設定 ) SetTransColor(255, 0, 255); // 描画先をアルファチャンネルつき画面にする SetDrawScreen(ScreenHandle); // メインループ while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) { // 画面をクリア ClearDrawScreen(); // 描画ブレンドモードを乗算済みアルファにセット SetDrawBlendMode(DX_BLENDMODE_PMA_ALPHA, 255); // 画像を描画 DrawGraph(0, 0, GraphHandle, TRUE); // マウスの位置を取得 GetMousePoint(&MouseX, &MouseY); // 文字列を描画 DrawFormatStringToHandle(550, 350, GetColor(0, 255, 0), PreMulAlphaFontHandle, "%d %d", MouseX, MouseY); // 描画結果をソフトイメージに転送する GetDrawScreenSoftImage(0, 0, SCREEN_W, SCREEN_H, SoftImageHandle); // 取り込んだソフトイメージを使用して透過ウインドウの状態を更新する UpdateLayerdWindowForPremultipliedAlphaSoftImage(SoftImageHandle); } // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; }
メンテ

Page: 1 |

Re: マウスの座標がずれる ( No.1 )
名前:管理人 日時:2024/08/07 02:14

現象確認用のプログラムを載せて頂きありがとうございます すみません、透過ウィンドウ使用時に GetMousePoint の座標が10px左にずれるのはDXライブラリのバグです 修正版をアップしましたので、よろしければお使いください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 11.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: マウスの座標がずれる ( No.2 )
名前:ぶー(解決) 日時:2024/08/07 04:21

修正されていることを確認しました。 対応ありがとうございます。m(__)m
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存