私は Windows プログラミングの初心者であり、さまざまな種類の問題に継続的に遭遇していますが、そのほとんどは自分で解決できました。
当面の問題は、テキスト領域に表示されるキャレット (またはカーソル) です。テキストを入力している場所を示すもの? 少なくとも表示されていますが、本来のように点滅しません。
次のように WM_CREATE で作成された編集ボックスがあります。
case WM_CREATE:
{
if(!logged) {
HWND userField = CreateWindow(
"EDIT", // Predefined class; Unicode assumed
NULL, // Button text
WS_VISIBLE | WS_CHILD | WS_BORDER | ES_LEFT, // Styles
C_WIDTH/2 - 80, // x position
C_HEIGHT - 240, // y position
160, // Button width
25, // Button height
hwnd, // Parent window
NULL, // No menu.
(HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE),
NULL); // Pointer not needed.
// initialize NONCLIENTMETRICS structure
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(ncm);
// obtain non-client metrics
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0);
// create the new font
HFONT hNewFont = CreateFontIndirect(&ncm.lfMessageFont);
// set the new font
SendMessage(userField, WM_SETFONT, (WPARAM)hNewFont, 0);
}
}
break;
エディットボックスに関するコードは以上です。私が十分に明確でないか、コードの提供が不足している場合は申し訳ありません。ここでコードのどの部分が関連していて、何が関連していないのかわかりません。コード全体をここに貼り付ける必要もないと思います。
問題は、テキスト ボックス (userField) のキャレットが点滅しないことです。
必要な場合は、詳細をお尋ねください。