DXライブラリを使用させて頂きありがとうございます。
複数の文字入力ウィンドウを同時に扱いたい目的で、DXライブラリの文字入力を使用せずに済む方法を探していました。
下記のようなプログラムで用意することはできたのですが、日本語入力中素早く文字を入力すると意図せぬ英字が追加されてしまいました。
ゆっくり打てば何も問題はないのですが、キーボードを適当に素早く叩くと発生します。
この現象の解決方法などがあればご教示いただけると幸いです。
以上、よろしくお願いします。
【開発環境】
windows11
Microsoft Visual Studio Community 2017
Version 15.9.49
VisualStudio.15.Release/15.9.49+28307.2019
Microsoft .NET Framework
Version 4.8.04161
インストールされているバージョン:Community
Visual C++ 2017
Microsoft Visual C++ 2017
【問題発生のプログラム】
#include "DxLib.h"
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
SetGraphMode(640, 480, 16);
ChangeWindowMode(TRUE); //ウィンドウモード
if (DxLib_Init() == -1) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
SetUseIMEFlag(TRUE);
SetDrawScreen(DX_SCREEN_BACK); // 描画先を裏画面に設定
HWND hwnd = GetMainWindowHandle();
HWND hwnd_child;
hwnd_child = CreateWindowA("edit", "", WS_VISIBLE | WS_CHILD | ES_LEFT, 140, 38, 400, 22, hwnd, (HMENU)1, hInstance, NULL);
int A_pflag = 1;
ClearDrawScreen(); // 裏画面のデータを全て削除
DrawBox(0, 0, 640, 480, GetColor(240, 240, 240), TRUE); // 背景色書き込み
ScreenFlip(); // 裏画面を表示する
ShowWindow(hwnd_child, SW_SHOW);
while (ProcessMessage() == 0 ) {}
DestroyWindow(hwnd_child);
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}