机上のモニターの配置を少しアレンジしてみた.主たる作業には正面のワイドモニターを使うという基本は同じだが,サブノート2機の配置を入れ替えてみた.ログを付けるというのは作業を円滑に進める上での最大のポイントなので,これがまったくストレスなしにというより,何も考えずに移行できるようになっていなくてはならない.現行では,①ネットアクセス・メール送受→BlackHawk,②ログの編集・投稿→VAIO2,③プログラミング→FireBirdという割当てになっている.
これまでは①が②と③の中間に配置されていたが,②をメインスクリーンの近くに寄せて,視線の移動距離が小さくなるようにしてみた.この配置ではVAIO2のキーボードは使えなくなるので,撤去することになる.つまり,ほとんどすべての作業を正面のキーボードだけで行うようになる.これでよいのではないだろうか?
細かい点だが,いくつか余分な手間を掛けているポイントがある.①スマホのカメラとGoogleのPhotoは同期しているので,アップロードする必要はない,②ブラウザの表示は適当なタイミングで更新されているように思われるので,再描画しなくともよい.項目②の動作はあまり確かではないが,ムキになって再描画しなくてもよい(放置しておけばそのうち同期するだろう)という趣旨だ.ともかく,「頭に浮かんだことはその次の瞬間には画面上に表示されている」ことが必要だ.
さて,昨日の問題に戻ろう.インポートしたときの図面に系線や人名が表示されないという問題だ.縦書きでは動作しているので,横書きの実装によって起きていることは確かだ.横書きの実装に関わる修正はできるだけ複数のソースファイルにまたがらないようにしているが,reverseAxisの参照箇所をDrawingObject.cppに集中しておこう.移動した関数は以下の4つだ.
- TREEVIEW::DrawControl
- NAMEBOX::getViewFrame
- NAMEBOX::DrawName
- Bobject::SetFontOrientation
クリップリージョンが関係している可能性がある.⇒確かにそのようだ.Bobject::setClipRegionの冒頭でBobject::setClipRegionで復帰すれば描画できる.⇒Bobject::setClipRegionから呼び出しているCDC::SelectClipRgnで直交変換を実施しないようにすると,縦書きと横書きの表示が同じになる.つまり,人名枠と系線は表示され,人名は表示されないという状態になる.この方が状態としては良いような気がする.ただし,インポートでは,SelectClipRgnの戻り値が「新しいクリップ領域は空です」という値になっている.RGN_ANDでクリッピングしているので共通領域がないということになる.
やはり,どこかおかしい.SetClipRegionで対象矩形領域を直交変換してからSelectClipRgnを実行するようにして,ZELからの呼び出しの場合は正しく動作するようになったが,インポートでは元の状態に戻ってしまった.ZELを読み込んだ場合と,インポートで異なるフローを通っているということだろうか?⇒まったく表示されていないという訳ではない.画面上部のほぼウィンドウ枠サイズの領域には描画できる._CDCを参照している箇所を拾い出しておこう.
- COUPLING::SetTitleBox
- COUPLING::SetTitleBox
- TREEVIEW::BuildBitMap
- Bobject::DrawJoint
- PrintNumber
- Bobject::Nprint
- Bobject::DrawTextBox
- Bobject::DrawTextLine
- NAMEBOX::DrawImage
- TREEVIEW::Refresh
- PaintCircle
- TREEVIEW::GetAutoZoomRate
- PAGESETUP::getViewSizeInmm
- PAGESETUP::PrintImposition
- PAGESETUP::PrintPage
- TREEVIEW::GetTitleRect
- TREEVIEW::GetFrameRect
- TREEVIEW::CenteringBox
- TREEVIEW::GetDrawSize
- TREEVIEW::DispFrameRect
- TREEVIEW::GetWheelPosition
- TREEVIEW::CenteringMove
- TREEVIEW::GetFramePosition
- TREEVIEW::GetScrollValue
- TREEVIEW::GetCenterPoint
- TREEVIEW::CenterPostMove
- TREEVIEW::DPtoNormal
- TREEVIEW::CallCenteringMove
- TREEVIEW::getOyaFrame
- Bobject::setClipRegion
- TREEVIEW::LimitSizeOver
- TREEVIEW::MouseEnterBox
- TREEVIEW::LButtonDblClk
- TREEVIEW::LButtonDown
- TREEVIEW::LButtonUp
- TREEVIEW::MouseMove