タブコントロールの自作についてなんですが、現在タブコントロールのプロトタイプまで作ったもののベタな方法でして機能面の拡張や処理負荷等に不安を抱いています。おおよその仕様として、
・フレームとなる部分とページ部分とタイトル(上部のタブ部)に当たるものをbgscrで作成、SetParentでページとタイトル部分をフレームに子ウィンドウで貼り付け
・タイトル部分のクリック時にWM_LBUTTONDOWN割り込みで処理先に移動、ページ部分のウィンドウのZオーダー入れ替えとタイトル部分の再描画
・WM_SETCURSOR割り込みでタイトル部分にカーソルが来たらマウスオーバーのエフェクトを再描画、WM_MOUSELEAVEで再描画
・色やフォントなどを定義したテーマファイルを読み込むことでタブの見た目の変更ができる。
・ページの情報などはモジュール型変数で一括管理
などなんですが、さらに タブのドラッグで順序入れ替え、領域外ドラッグで別ウィンドウとして表示、コマンド等でページの非表示・再表示の切り替え、等の機能を追加するつもりです。
しかしこれらの機能追加となると変数の入れ替えが相当大変だったり、負荷も結構高くなってきてしまいます(タイトル部分のマウスオーバーがWM_SETCURSORを使用しているためカーソルの同じタイトル部分での1ドットの移動だけでも割り込みが入り負荷がかなり高くなる)。
ブラウザや他タブがあるソフトウェアはこういった問題をどう解決しているのでしょうか。HSPはHTML&CSSのように文字"だけ"の変更や背景"だけ"の変更といったことはできずに、文字の変更や背景色の変更だけでもすべて再描画する必要があるため比較的高負荷にはなりがちだと思いますが…
私 HSPやプログラミングはそこまで詳しくなく、こういったタブコントロールの自作は調べてもほとんどヒットしないのでご意見いただけると幸いです…