[3345]
マルチスクリーン
げんた
ちらっと見ただけで試す環境もないのですが,とりあえず問題の場所だけ.
CEditWnd.cppの385行目~(CEditWnd::Create)
デスクトップ画面からはみ出さないようにするためにSystemParametersInfo(SPI_GETWORKAREA)で得た値とウィンドウのサイズを比べてウィンドウ位置を調整しています.これだとプライマリモニターの値しか得られないので,マルチウィンドウの場合は
*まずMonitorFromWindow()でウィンドウのモニターハンドルを取得
* 次にGetMonitorInfo()でMONITORINFO構造体にウィンドウ情報を得る
とする必要があると思います.
SystemParametersInfo(SPI_GETWORKAREA)というのは他にもウィンドウの整列,Tip表示,補完ウィンドウ,TAB表示で使われています.
あと,マルチウィンドウ関連APIはWindows 95でサポートされていないので,Windows 95で起動でき無くならないためにはOSを判定した上でLoadLibraryとGetProcAddressで動的に呼びだす必要があります.
etc.cppに指定ウィンドウのある画面のワークエリアを取得する関数というのを作った方がいいでしょう.
時間ができたら実装してみるつもりですが,先にやりたい片はどうぞ(笑)