リッチエディットにカレンダーを表示させているのですが、マウスでクリックした場合にフォーカスが移ってしまいカーソルが表示されてしまいます。
これをラベルと同じように表示だけするようにしたいのですが、よい方法があれば教えてください(読み取り専用にする方法は見つけたのですがマウスでクリックするとカーソルが表示されてしまいます)。
リッチエディットを表示専用で使いたい
Re: リッチエディットを表示専用で使いたい
私の勘が確かならば、下の方法でフォーカスを消せると思います。> リッチエディットにカレンダーを表示させているのですが、マウスでクリックした場合にフォーカスが移ってしまいカーソルが表示されてしまいます。
> これをラベルと同じように表示だけするようにしたいのですが、よい方法があれば教えてください(読み取り専用にする方法は見つけたのですがマウスでクリックするとカーソルが表示されてしまいます)。
細かい仕様は、そちらで変更してください。コントロールIDとか。。。
[ここをクリックすると内容が表示されます]
コード: 全て選択
Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
Select Case dwMsg
Case WM_COMMAND
Select Case LOWORD(wParam)
Case RichEdit1
Select Case HIWORD(wParam)
Case EN_SETFOCUS
SendDlgItemMessage(hWnd,RichEdit1,WM_KILLFOCUS,0,0)
End Select
End Select
End Select
' イベントプロシージャの呼び出しを行います。
MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function
あと、カレンダーを表示するだけでしたら、専用のカレンダーコントロールと
いうのがコモンコントロールにありますのでそちらを使用するのも良いでしょう。
このコントロールのクラス名はAB4には定義されているようですね。
コード: 全て選択
Const MONTHCAL_CLASS = "SysMonthCal32"