前提・実現したいこと
Windows10とVisual Studio 2017とC++でWIN APIを用いてwindowsデスクトップアプリケーションを作成しています。CreateWindowでEDITコントロール生成し、文字入力が終わったらその文字列を入力した位置と同じ位置にDrawTextしようとしていますが、EDITコントロールとDrawTextで文字の開始位置が変わります。ついては、両者の差(ピクセル数)を取得できないでしょうか?
発生している問題・エラーメッセージ
EDITコントロールの左マージンをEM_SETMARGINSで0にしても、CreateWindowの位置とDrawTextの位置が一致しません。DrawTextのほうが若干左に来てしまいます。
該当のソースコード
■EDITコントロール側
HwndEditBox = CreateWindow( TEXT("EDIT"), NULL, WS_VISIBLE | WS_CHILD | ES_MULTILINE | ES_LEFT | ES_WANTRETURN | WS_BORDER, 0, 0, 1000,100, hwnd, (HMENU)ID_EDITBOX, (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL ); SendMessage(HwndEditBox,EM_SETMARGINS, EC_LEFTMARGIN, 0);
■DrawText側
WCHAR pWStr[32768]; RECT rect; GetWindowText(HwndEditBox, pWStr, 32767); rect.left = 0; rect.top = 0 rect.right = 1000; rect.bottom = 100; DrawText(hdc,pWStr,-1, &rect,DT_LEFT| DT_EDITCONTROL ;
試したこと
EM_GETMARGINSで左マージンを取得しましたが0でした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/21 00:19