RichEdit内のスクロール – プログラミング – Home

通知
すべてクリア

[解決済] RichEdit内のスクロール


HM
 HM
(@HM)
ゲスト
結合: 12年前
投稿: 2
Topic starter  

初めまして、よろしくお願いします
WinVista(SP2), VC++2010 SDKでプログラムしています

システムフォルダのMsftEdit.dllをLoadLibraryで読み込んで
CreateWindowExに
 クラス名 MSFTEDIT_CLASS(実体はLRICHEDIT50W)
 スタイル WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_NOHIDESEL
を指定してウィンドウに貼り付けてサブクラス化しています

リッチエディット付属(WS_VSCROLL, WS_HSCROLL)のスクロールバーでは
・ページ内に収まる行数 or 文字数になるとキャレットの位置がどこにあってもスクロ
ールの位置が0になってしまう
 例えば、右に1ページ動いて1文字ずつ削除していくと、1ページに収まる文字数になる
と一気に左端へスクロールしてしまう
・ウィンドウサイズbottomが小さくなる時にキャレットが画面内にある場合常にキャレ
ットがウィンドウより下に行かないように移動される
 その後ウィンドウを大きくするとキャレットはその場で止まって、次にスクロールバ
ーがクリックされると余白が表示されないように移動される
今の所この2点が気になったのでいくつか教えて下さい

-----1
付属のスクロールバーで上記2点が起こらないようにする方法

-----2
自前でスクロールする場合WM_*SCROLLが来たら
SetScrollInfo
ScrollWindowEx
UpdateWindow
return0;
という順番で呼んでいます

スクロールバーは正常に動いているのですがreturn0;直後の再描画でスクロール(画面)
が元に戻ってしまわないようにする方法(*)
-----2(*)
2chの方(win32api質問箱)ではScrollWindowEx後に画面の位置を記憶させるために
SendMessageを使うと言われたのですが後々釣りだった事がわかり打ち止めにしてきまし

そこで疑問なんですがScrollWindowEx後に画面の位置を記憶させるためのメッセージは
存在するのでしょうか?

-----3
リッチエディットにメッセージを送信する場合
EM_LINESCROLLをリッチエディットに送ってみた所垂直スクロールは正常に動作したので
すが水平スクロールは動作しませんでした
水平スクロールをさせる場合何か特別な事をしないといけないのでしょうか?

1, 2, 2-*, 3,の4点よろしくお願いします


引用未解決
トピックタグ
HM
 HM
(@HM)
ゲスト
結合: 12年前
投稿: 2
Topic starter  

垂直バーはEM_LINESCROLLを使用して
水平バーはデフォルトの動作に任せる事にしました

失礼しました


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました