- Win32API質問箱 Build121 [転載禁止]©2ch.net
699 :694[sage]:2015/11/29(日) 12:46:39.72 ID:c+9MHjtm - >どうしたいのか書け
ふしなしのWS_POPUPを使って、いわゆるツールウィンドウを作りました ツールウィンドウなので親ウィンドウより手前に表示される必要があり ツールウィンドウのCreateWindowで親ウィンドウを設定して作成しました この時点では期待通りの動作をします しかし、後からツールウィンドウの親ウィンドウを変更する必要が出てきました そこでSetParentでツールウィンドウの親を変更すると WS_POPUPの所謂オーバーラップ的な独立したウィンドウではなくなり WS_CHILD風の、親ウィンドウのクライアント内だけで表示されるウィンドウになります WS_POPUPスタイルのオーバーラップ的な動作を維持したまま 親ウィンドウを変更するにはどうしたらよいでしょうか
|
- GCは失敗。メモリは自分で管理せよ! その2©2ch.net
90 :デフォルトの名無しさん[sage]:2015/11/29(日) 14:29:40.51 ID:c+9MHjtm - マークスイープ型のGCが必要かどうかについて、もう少し建設的な会話をしようよ
リソースを自動で開放してくれる機能は、無いよりは有った方が絶対に良い、と言い切ってよいよね ただ、その方式が話の焦点だと思う C++のスマポの参照カウンタ方式はデストラクタとの相性が良いし、RAIIもよく機能するし 開放されるタイミングもはっきりしているのて、手続き型言語と相性が良いし、軽い ただし、循環参照があるとリークする 解決策として、片方をweak_ptrにするという方法が用意されている weak_ptrは対象オブジェクトが開放されると勝手にヌルポみたいになるのでいろいろと悪用ができる 一方でマークスイープ系のGCは、循環参照があってもリークしない しかし参照カウンタ方式に比べてマークスイープ系のGCが優れている点は、それだけ 重いし、いつ開放処理が実行されるか分からないので リソース開放のタイミングを明確に行いたい場合のための別の仕組みが必要になった どちらを選ぶ?
|
- Win32API質問箱 Build121 [転載禁止]©2ch.net
701 :デフォルトの名無しさん[sage]:2015/11/29(日) 14:34:03.32 ID:c+9MHjtm - 今のところ、以下の方法で対処していますが・・・
・あらかじめツールウィンドウに配置したいものを一つのWS_CHILDなウインドウ内に収めておく ・それをWS_POPUPなウィンドウに納める ・親を変更する場合は新たにWS_POPUPなウィンドウを作って中身を移し変える 一応動いてはいるんですが、あまりスマートとは言えませんね
|
- Win32API質問箱 Build121 [転載禁止]©2ch.net
706 :デフォルトの名無しさん[sage]:2015/11/29(日) 21:03:09.00 ID:c+9MHjtm - 皆さんの意見をまとめると
WS_CHILDでないとき、CreateWindowの引数で渡す親ウィンドウのパラメータは 親ウィンドウではなくオーナーウィンドウとして扱われる (たしかにCreateWindowのMSDNに親ウィンドウまたはオーナーウィンドウって書いてありましたわ) そして後からオーナーウィンドウを変更するAPIは用意されていない ってことですね 失礼しました
|
- C#, C♯, C#相談室 Part89 [転載禁止]©2ch.net
524 :デフォルトの名無しさん[sage]:2015/11/29(日) 21:08:48.24 ID:c+9MHjtm - 結構面倒そうだな
百億万 とか並びがおかしかったらパースエラーにしないといけないしな
|
- 動画プログラミング [転載禁止]©2ch.net
32 :デフォルトの名無しさん[sage]:2015/11/29(日) 23:03:33.75 ID:c+9MHjtm - カラーキーでも使って抜くか
それがいやならGIFかAPINGでも使えよ
|