- Win32API質問箱 Build118
449 :デフォルトの名無しさん[sage]:2014/09/25(木) 16:19:44.49 ID:HhDeddVf - >>448
SetAnchorControl(hwnd_button, ancor_flag) みたいな感じで、ancor_flagは面倒くさいからコピペするけど、意図はなんとなく感じ取ってw AnchorNONE = 0x0000, AnchorLEFT = 0x0001, AnchorLR = 0x0003, AnchorLT = 0x0005, AnchorLB = 0x0009, AnchorRIGHT = 0x0002, AnchorRT = 0x0006, AnchorRB = 0x000a, AnchorTOP = 0x0004, AnchorTB = 0x000c, AnchorBOTTOM = 0x0008, AnchorALL = 0x000f, 渡されたhwndの親をサブクラス化して、サブクラス化プロシージャでWM_SIZEを処理して、 親ウィンドウのサイズ変更に子ウィンドウを追随させてる。 追随だけど、かなり前に作ったので意図を覚えてないんだけど、MoveWindowではなく BeginDeferWindowPosとかDeferWindowPosを使ってる。 あとは[親ウィンドウのサイズ情報]+[子ウィンドウごとに親ウィンドウからの各辺からの距離の情報] などを最初に記憶してて、現在のサイズと比較して補正する感じ。 子ウィンドウ一つあたり40byteくらい食ってる。でも、消費メモリは気にしてないけどね。 汎用性を持たせるのにDLLにして、親ウィンドウが複数ある場合に対応とか辺りに余計な手間がかかった。 泥臭い作りかなと思いつつ、いざ完成して動かしてみたけど、気持ちよく動いてる感じ。
|