<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>白の起源</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/" />
   <link rel="self" type="application/atom+xml" href="http://la-blanche.org/atom.xml" />
   <id>tag:la-blanche.org,2008://1</id>
   <updated>2008-08-28T12:38:13Z</updated>
   
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>


<entry>
   <title>月に一度の贅沢</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/post_220.php" />
   <id>tag:la-blanche.org,2008://1.466</id>
   
   <published>2008-08-28T11:37:42Z</published>
   <updated>2008-08-28T12:38:13Z</updated>
   
   <summary> ヴィタメールのマカロン買ってきたー。んまい。 今日は珈琲。明日は紅茶。 来月は...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="txt" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="080828-195636.jpg" src="http://la-blanche.org/img/080828-195636.jpg" width="194" height="300" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></span>
ヴィタメールのマカロン買ってきたー。んまい。
今日は珈琲。明日は紅茶。
来月はグラマシーニューヨークのチーズケーキか。

こっそりもそもそとエロCG集の作業を進めていたり。
現在下書きの修正中。
よくよく考えると久しぶりのエロ。
ちなみに触手＋ボテ＋異形出産＋αな物になる予定。色々酷い。
テキストはつけるかどうかは考え中。
とにかく夏休みまでに片付けたい所存。

とかなんとか言って中和を試みる。

<br sytle="clear : both" />]]>
      
   </content>
</entry>

<entry>
   <title>introduce</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/introduce_1.php" />
   <id>tag:la-blanche.org,2008://1.465</id>
   
   <published>2008-08-26T14:55:53Z</published>
   <updated>2008-08-26T15:01:06Z</updated>
   
   <summary>落ちるシュークリーム さん ＞裾の長い服がフワッとした感じって大好きです。り－2...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="introduce" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[<strong><a target="_blank" href="http://girldoll.org/kamia/">落ちるシュークリーム さん</a></strong>
<em>＞裾の長い服がフワッとした感じって大好きです。り－20把握しました</em>
お手数をおかけしてスミマセン。わざわざ調べていただけるとは…！

<strong><a target="_blank" href="http://unholycathedral.seesaa.net/">不浄なる大聖堂 さん</a></strong>
<em>＞こういうふわっとしたスカートっていいですよねー。
＞ロングスカートでDDRやるメイドさん見るまでは死ねない（何</em>
しかも描き手としては色々とごまかせ(ry
<strong>
<a target="_blank" href="http://drag11.sakura.ne.jp/check/">ＣＧ定点観測 さん</a>
<a target="_blank" href="http://kanaka007.bg.cat-v.ne.jp/">新まったり加奈香の日記 さん</a>
<a target="_blank" href="http://www.henkuma.com/">変熊.com さん</a>
<a target="_blank" href="http://dqn.no-ip.com/">YANAGI DQN さん</a></strong>]]>
      
   </content>
</entry>

<entry>
   <title>clapres_002</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/clapres_002.php" />
   <id>tag:la-blanche.org,2008://1.464</id>
   
   <published>2008-08-23T14:22:10Z</published>
   <updated>2008-08-23T14:26:21Z</updated>
   
   <summary>＞初めまして。久々に来てみたら式じゃ無くなっててびっくりしました。やっぱり絵が上...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="clap" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[<em>＞初めまして。久々に来てみたら式じゃ無くなっててびっくりしました。やっぱり絵が上手ですね。……教えてほしいなぁ。</em>
はじめましてー最近月１更新ですからねーもうちょっと更新したいところなのですが。
自分なんて人様に教えられるほどのものでも無いですし、継続は力なりというかやっぱり描いた量が直結すると思うのですよ。
そもそも10年近くCGやってて未だこの程度なので効率の悪い方法しかわからないのです(´･ω･`)]]>
      
   </content>
</entry>

<entry>
   <title>天体観測</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/post_219.php" />
   <id>tag:la-blanche.org,2008://1.463</id>
   
   <published>2008-08-23T14:10:10Z</published>
   <updated>2008-08-23T14:21:29Z</updated>
   
   <summary>セイリオス・ゼロ行ってきたー そういやプラネタリムって凄い久しぶりに行った。 改...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="txt" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[<a href="http://seirios-rita.shaft-web.net/" target="_blank">セイリオス・ゼロ</a>行ってきたー
そういやプラネタリムって凄い久しぶりに行った。
改めて時間を見つけて一人で星でも見に行こうかな。

内容だけど演劇だと思ってたらどちらかというと朗読メインなのね。
語り手と演者に分かれていたのはそういうことかー
コンサートも朗読も演劇も全部つめこんだ不思議で楽しい時間だった。

にしてもプラネタリウム見ながらRitaちんの生歌聞くとかどんだけ贅沢なんだ……。
Ritaちんには有名になって欲しいけどキャパ的な問題を考えるとそうなったらもうこういう機会はなくなっちゃうんだろうなぁ。

本当に楽しい時間を頂きました。
またあれば行きたいけれど、今回抽選だったので次回は今回行けなかった人に行って貰いたい。
少しでも多くの人がこの素敵な時間を体験できればなと思う。


さて、そろそろエンジンかけ直さないと。
ここ１、２週間止めっぱなしだわ。]]>
      
   </content>
</entry>

<entry>
   <title>裏表紙</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/post_218.php" />
   <id>tag:la-blanche.org,2008://1.462</id>
   
   <published>2008-08-22T17:36:00Z</published>
   <updated>2008-08-22T17:39:45Z</updated>
   
   <summary></summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="img" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[<img src="http://la-blanche.org/img/ynucl13.jpg" />

日曜日にあるCOMITIA85に所属サークルが出るので裏表紙描いたー
部誌の表紙描くの久々な気がする。
サークルスペとかはわかんない……多分サークルサイトに行っていただければ分かるかと思います。
ぶっちゃけもう眠いので寝ますー]]>
      
   </content>
</entry>

<entry>
   <title>clapres</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/clapres.php" />
   <id>tag:la-blanche.org,2008://1.461</id>
   
   <published>2008-08-19T14:37:33Z</published>
   <updated>2008-08-19T14:39:10Z</updated>
   
   <summary>＞&gt; ちびまりさ ＞もう解決されてますかね？ ＞ttp://tekitouday...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="clap" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[<em>＞> ちびまりさ
＞もう解決されてますかね？
＞ttp://tekitoudays.seesaa.net/article/60203491.html
＞↑のスクリプトを実行するとMQOファイルが読み込めます。</em>
おおっ！ありがとうございますー
ボーンを触らずに次のモデルに移ってそのまま放置してました……

件のスクリプトですがどうやらマテリアルの周りでエラーを吐いているようですorz
無知故に普通ではあり得ないモデルの作り方してるっぽいので次のモデルで気をつけつつまた利用してみます。
情報ありがとう御座いますー]]>
      
   </content>
</entry>

<entry>
   <title>introduce</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/introduce.php" />
   <id>tag:la-blanche.org,2008://1.460</id>
   
   <published>2008-08-19T14:24:50Z</published>
   <updated>2008-08-22T17:35:12Z</updated>
   
   <summary>紹介ありがとう御座いますー(&apos;∀`) 落ちるシュークリーム さん ＞そういえば前...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="introduce" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[紹介ありがとう御座いますー('∀`)

<strong><a target="_blank" href="http://girldoll.org/kamia/">落ちるシュークリーム さん</a></strong>
<em>＞そういえば前回の式に続き縦長絵ですね</em>
上下への視線移動が大きくすっきりした空気が出るような気がして楽しいのですよー

<strong><a target="_blank" href="http://kanaka007.bg.cat-v.ne.jp/">新まったり加奈香の日記 さん</a></strong>
<em>＞赤い傘が目立つ女の子。最近急な雨とか多いですからねぇ･･･。</em>
今日（08/19）も振りましたしねぇ。勘弁して欲しいです(´･ω･`)

<strong><a target="_blank" href="http://unholycathedral.seesaa.net/">不浄なる大聖堂 さん</a></strong>
<em>＞赤の傘が目立ちますが、背景のにじみ具合も風情があります。</em>
レンズに水滴が薄く載っているときに軽くにじんだりするので試してみましたー

<strong><a target="_blank" href="http://sazanami.net/">さざなみ壊変 さん</a>
<a target="_blank" href="http://drag11.s6.xrea.com/check/">ＣＧ定点観測 さん</a>
<a target="_blank" href="http://www.aa.alles.or.jp/~jigoku/">焦熱地獄 さん</a>
<a target="_blank" href="http://d.hatena.ne.jp/hitonoumi/">Fate雑記 さん</a>
<a target="_blank" href="http://dqn.no-ip.com/">YANAGI DQN さん</a></strong>]]>
      
   </content>
</entry>

<entry>
   <title>残暑見舞い</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/post_217.php" />
   <id>tag:la-blanche.org,2008://1.459</id>
   
   <published>2008-08-18T00:47:18Z</published>
   <updated>2008-08-18T00:57:40Z</updated>
   
   <summary></summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="img" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[<img src="http://la-blanche.org/img/rainy_005.jpg">

コミケお疲れ様でしたー
自分は2日目に挨拶だけして早々に帰宅しました。
やたら混んでた様な気がする。一般で参加するのは久しぶりだったので気のせいかもしれませんが:-P

久々にちょっと気合い入れて書いてみた。
けれど余りイメージ作り込まないで背景描き出すのは良くないねぇ。特にこの手の絵は。
まだまだ暑い日が続くようですが頑張って乗り切っていきましょうー
これが過ぎれば飽食の秋ですよ！]]>
      
   </content>
</entry>

<entry>
   <title>コントロールサイズのリサイズ その２</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/post_216.php" />
   <id>tag:la-blanche.org,2008://1.458</id>
   
   <published>2008-08-04T11:27:17Z</published>
   <updated>2008-08-04T11:43:40Z</updated>
   
   <summary>前の記事で描画時にゴミが残るーとか言ってたわけだけど、 そもそもWM_SIZEを...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="prgramming" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[<a href="http://la-blanche.org/2008/08/post_214.php">前の記事</a>で描画時にゴミが残るーとか言ってたわけだけど、
そもそもWM_SIZEを捕まえる必要がないという……
<a href="http://home.att.ne.jp/banana/akatsuki/">The So-Software Studio のWTL/ATLコンテンツ</a>のPart3ダイアログリサイズにリサイズマップを使ったコントロールのリサイズ方法が載ってます。
WTL/ATLはもっぱらここを読んで勉強してるわけだけどちゃんと読もうぜ俺。
悔しいので何でゴミが残らないのかなーと思ってちょっと追ってみた。
CDialogResizeのWM_SIZEハンドラで処理しているらしい。
んで、自分のくんだハンドラとの違いはまず処理始めに

BOOL bVisible = pT->IsWindowVisible();
if(bVisible) pT->SetRedraw(FALSE);

としてやって表示されてたら一時的に再描画を切って、最後に

if(bVisible) pT->SetRedraw(TRUE);
pT->RedrawWindow(NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_UPDATENOW | RDW_ALLCHILDREN);

としてやって再描画をオンにして再描画メソッドを投げると。
再描画を切るのはまぁ良いとして多分最後のRedrawWindow()に渡している引数がポイントの模様。
MSDNを見ると

■DW_ERASE
ウィンドウの再描画時に、ウィンドウが WM_ERASEBKGND メッセージを受け取ります。RDW_INVALIDATE フラグも同時に指定しなければなりません。RDW_INVALIDATE フラグを指定しないと、RDW_ERASE フラグは効果がありません。
■RDW_INVALIDATE 
lprcUpdate または hrgnUpdate パラメータで指定した領域を無効化します（NULL 以外の値を指定できるのはどちらか一方だけです）。両方とも NULL の場合、クライアント領域全体が無効化されます。

となっていて、自分のはWM_ERASEBKGNDを投げるだけだったので、きちんと消去されていなかったらしい。
一度領域を無効化しないと消されないという解釈でいいのかな。
とまぁそう言うことらしい。

若干もやもやが残るけどこれ以上追求してる余裕もないので分かったつもりになっておく。]]>
      
   </content>
</entry>

<entry>
   <title>コントロールのサブクラス化と多重継承</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/post_215.php" />
   <id>tag:la-blanche.org,2008://1.457</id>
   
   <published>2008-08-03T12:36:09Z</published>
   <updated>2008-08-07T02:56:28Z</updated>
   
   <summary>/* 立て続けにまたプログラミングの記事。 いや、卒論（テキストの方ね）書くとき...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="prgramming" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      /*
立て続けにまたプログラミングの記事。
いや、卒論（テキストの方ね）書くときに見返すことで役立つかなーと。
あとは何処かの誰かが同じようなことで詰まったときに少しでも参考になれば、と。
一応もそもそと絵を描いては居るのだけれど、どうにも身が入らない。
というか絵なんて描いていて良いのだろうかとか煽られる煽られる。
何かもう少しでも多くソース弄ってないと寝るときに不安が押し寄せてきて寝れないとか。
*/

そんなことはさておいて。
表題のことだけどサブクラス化と多重継承の説明は省略。
今回はサブクラス化と多重継承を行ったときに起きた問題と解決。

例えば、CWindowImplテンプレートを継承してサブクラス化する際に、更にCTreeViewCtrlExを継承する場合。
色々な関数が在るわけだけどCTreeViewCtrlEx::の関数を使う時にm_hWndがNULLですよーな意味のエラーががが。
んで、色々追ってみると、CWindow::m_hWndには値が入っていて、CTreeViewCtrlEx::m_hWndはNULLになっている。
CTreeViewCtrlEx::の関数を使うときは当たり前と言えば当たり前なんだけど、CTreeViewCtrlEx::m_hWndが使われる。
なのでCWindow::m_hWndの値をCTreeViewCtrlEx::m_hWndへ突っ込んでみると無事に動作確認！

けど動いたのは良いけどこんな解決の仕方で良いのだろうか。
ただまぁ色々なコントロールをクラス化して別で記述出来るので、分割してクラス当たりの行数を減らしてコーディングしたい人にはお勧め。
ただし何か問題があっても責任は取れな(ry
      <![CDATA[// 追記
m_hWndがNULLになるの件。
どうやらCDiagImplテンプレートの引数に二つ以上持たせることで解決できる模様。
宣言時に
public class CMyClass : public CDiagImpl<<strong>CMyClass , CTreeviewCtrlEx</strong>>
とかしてあげれば良いみたい。
これでわざわざ初期化関数を用意する必要が無くなる。]]>
   </content>
</entry>

<entry>
   <title>コントロールサイズのリサイズ</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/post_214.php" />
   <id>tag:la-blanche.org,2008://1.456</id>
   
   <published>2008-08-02T17:55:11Z</published>
   <updated>2008-08-02T18:02:52Z</updated>
   
   <summary>少し引っかかったのでメモ。 WTL/ATLでリサイズするときに捕まえるメッセージ...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="prgramming" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[少し引っかかったのでメモ。

WTL/ATLでリサイズするときに捕まえるメッセージは<strong>WM_SIZINGではなくWM_SIZE</strong>
何故かWM_SIZINGが飛んでこなくて代わりにWM_SIZEが飛んでくると言う。
とりあえずはこれでコントロール含めたリサイズが出来るようになるわけだけど、
素早くリサイズすると描画時にゴミが残る罠が。
どうにか出来ないかなとリサイズ後にWM_ERASEBKGNDとか投げてみたけれど改善されず。
キャッシュ消してリペイントでも駄目となるとどうしたら良いんだ？]]>
      
   </content>
</entry>

<entry>
   <title>ウィンドウ保存位置その３</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/post_213.php" />
   <id>tag:la-blanche.org,2008://1.455</id>
   
   <published>2008-08-02T11:03:39Z</published>
   <updated>2008-08-02T11:55:04Z</updated>
   
   <summary>WINDOWPLACEMENTのshowCmdにSW_HIDEが保存されないと言...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="prgramming" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[WINDOWPLACEMENTのshowCmdにSW_HIDEが保存されないと言う件で、
GetWindowPlacement（）についてMSDNを読んだら以下のような記述が。

<em>CWnd が最大表示されている場合は、WINDOWPLACEMENT 構造体の showCmd メンバは SW_SHOWMAXIMIZED になります。ウィンドウが最小化されている場合は、このメンバは SW_SHOWMINIMIZED になります。それ以外は SW_SHOWNORMAL になります。</em>

要は最大化か最小化しか状態を保存できないと言うことらしい。
仕方ないので状態保存用の関数を書き換えることに。

修正前は、

// target ： 状態を保存するウィンドウクラスへのポインタ
// nID ： ウィンドウのID
void inputState(CWindow* target,int nID){
&nbsp;&nbsp;&nbsp;&nbsp;target->GetWindowPlacement(&wndPlc[nID]);
}
となっていて、WINDOWPLACEMENT構造体の配列に直接値を取得して居たわけだけれど、
GetWindowPlacement（）は前述の通り、showCmdにSW_HIDEを保存できないので、以下のように修正。

// inWindplc ： 保存するWINDOWPLACEMENT
// nID ： ウィンドウのID
void inputState(WINDOWPLACEMENT inWndplc,int nID){
&nbsp;&nbsp;&nbsp;&nbsp;// ウィンドウ状態コピー
&nbsp;&nbsp;&nbsp;&nbsp;wndPlc[nID].flags = inWndplc.flags;
&nbsp;&nbsp;&nbsp;&nbsp;wndPlc[nID].length = inWndplc.length;
&nbsp;&nbsp;&nbsp;&nbsp;wndPlc[nID].ptMaxPosition = inWndplc.ptMaxPosition;
&nbsp;&nbsp;&nbsp;&nbsp;wndPlc[nID].ptMinPosition = inWndplc.ptMinPosition;
&nbsp;&nbsp;&nbsp;&nbsp;wndPlc[nID].rcNormalPosition = inWndplc.rcNormalPosition;
&nbsp;&nbsp;&nbsp;&nbsp;wndPlc[nID].showCmd = inWndplc.showCmd;	
}

あとは呼び出し元を、
{
(～略～）
&nbsp;&nbsp;&nbsp;&nbsp;// ウィンドウ状態保存
&nbsp;&nbsp;&nbsp;&nbsp;WINDOWPLACEMENT wndplc;
&nbsp;&nbsp;&nbsp;&nbsp;GetWindowPlacement(&wndplc);    //現在の状態を取得
&nbsp;&nbsp;&nbsp;&nbsp;// 表示状態をチェックし代入
&nbsp;&nbsp;&nbsp;&nbsp;if(IsWindowVisible())&nbsp;&nbsp;&nbsp;&nbsp;wndplc.showCmd = SW_NORMAL;
&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wndplc.showCmd = SW_HIDE;
&nbsp;&nbsp;&nbsp;&nbsp;// 状態保存関数呼び出し
&nbsp;&nbsp;&nbsp;&nbsp;pcfm->inputState(wndplc,wndId);
（～略～）
｝

と修正。
一応これで無事動作することを確認。
さくさく次に進もう。]]>
      
と思ったら確認不足。
OnDestroy（）が呼び出されるのはウィンドウ破棄後。
すなわち必ずIsWindowVisible（）はfalseを返す……！

なんかもう色々ごちゃごちゃ考えるのが面倒になったので、メンバにvisibleを持たせて対処。
力業だけど仕方在るまい。

なにか良い方法無いかなぁ。
   </content>
</entry>

<entry>
   <title>ウィンドウ位置保存その２</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/08/post_212.php" />
   <id>tag:la-blanche.org,2008://1.454</id>
   
   <published>2008-08-02T09:02:15Z</published>
   <updated>2008-08-02T10:26:40Z</updated>
   
   <summary>前回結局スレッドを使うことも出来なかったのでどうするかと考えたけれど、 やはり何...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="prgramming" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[前回結局スレッドを使うことも出来なかったのでどうするかと考えたけれど、
やはり何かしらを持たせなければどうにもなりそうに無さそう。

・CMainWindow（ウィンドウクラス）
・CConfigManager（ウィンドウ情報クラス）
・CWndManager（ウィンドウ管理クラス）
があって、
CWndManagerにCMainwindowとCConfigManagerを持たせるところまでは前回通り。
んで、CMainWindowに何かを持たせなければならないという結論に落ち着いたわけだけど、
持たせるのはCConfigManagerにすることに。

/* <a href="http://www.frieve.com/feditor/">Frieve Editor</a> という面白い物があったので使ってみる */

■ 前回
<img alt="UML_001.jpg" src="http://la-blanche.org/img/UML_001.jpg" width="351" height="163" style="" />

■ 今回
<img alt="UML_002.jpg" src="http://la-blanche.org/img/UML_002.jpg" width="351" height="163" style="" />

ウィンドウクラスでOnDestroyが呼ばれたときに、
WINDOWPLACEMENTをCConfigManagerに渡す
↓
CConfigManagerのデストラクタでファイルに書き出し

で、どうにかウィンドウ位置の保存に成功。
ただ、CConfigManager*を持たせるためにコンストラクタへの引数を増やさなきゃいけないのはなぁ。
出来ればデフォルトコンストラクタで余り意識しないで使えるようにしたかったのだけれど。

もし仮に、CConfigManagerを持たせずにやるとすれば、
所定の状況に於いてメッセージを発行し、
それをCWndManagerで、発行元を参照して処理
という方法が有るのだけれど、CWndManagerはメッセージループを持たないただのクラスなので捕まえることもできず、
かといってそれを実装しちゃうとそれはそれでごちゃごちゃしてて美しくないので却下。
そのうちこの辺りを綺麗に実装する方法を考え直そう。]]>
      で、また問題発生。
WINDOWPLACEMENTを使っているのだけれど、
cmdshowメンバにSW_HIDEを割り当てても、何故か保存時にはSW_SHOWに勝手に置き換わっているという怪現象が。
何故だ。
   </content>
</entry>

<entry>
   <title>ウィンドウ位置保存</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/07/post_211.php" />
   <id>tag:la-blanche.org,2008://1.453</id>
   
   <published>2008-07-30T06:13:11Z</published>
   <updated>2008-07-30T06:52:00Z</updated>
   
   <summary>管理用のパレットを独立させるから複数のウィンドウ（ダイアログ)が表示されるわけだ...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="prgramming" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[管理用のパレットを独立させるから複数のウィンドウ（ダイアログ)が表示されるわけだけど、
大抵のお絵かきツールはウィンドウ情報を保持してる（物によってはパターン保存可能）のを実装しようとして少し詰まったのでメモ。

CWndManager（ウィンドウ管理クラス）　→　CConfigManager（ウィンドウ情報）
　　↓　↓
ウィンドウ群.......

てなクラスで、本当はウィンドウクラス側でメッセージを処理してCConfigManagerに渡せれば良いんだけど、親クラスを持たせるとかの相互依存をあんまりやりたくないのでスレッドで処理することに。

具体的には、
CWndManagerのコンストラクタでスレッド生成
　↓
数分置きにウィンドウクラスの情報をチェックしCConfigManagerに渡す
　↓
CConfigManagerのデストラクタで状態を外部ファイルへ書き出し

で、スレッドを作るに当たってCreateThreadを使おうとするのだけれどビルドでエラーを吐く。
何でかなーと思ったら、<strong>スレッド関数はクラス内で使うときstaticしなければならない</strong>らしい。

なるほど。
これってメンバ関数だと実行アドレスが定まらないからって理由？
クラス時のメモリ周りの挙動があんまり分かってないのがこんなにも早く影響するとは。
C++に関しても、もっと勉強を進めないと。]]>
      
と、ここで問題発生。
いやまぁ普通の人ならstaticとか言った時点で気づくんだろうけど、この方法じゃ無理だ……
そうだよね。staticから非static読み出せるわけないじゃん。
しかしそうするとどうした物かなぁ。
スレッドが駄目となると、やはりウィンドウ毎に情報クラスを持たせてやるしか無いのだろうか。
依存関係が複雑になるのは嫌いなんだよなぁ。
どうにかシンプルにすませたい。
   </content>
</entry>

<entry>
   <title>財源は未来</title>
   <link rel="alternate" type="text/html" href="http://la-blanche.org/2008/07/post_210.php" />
   <id>tag:la-blanche.org,2008://1.452</id>
   
   <published>2008-07-29T13:04:44Z</published>
   <updated>2008-07-29T15:15:30Z</updated>
   
   <summary>  UA-4FX購入。 ここ数日現実逃避の一環として8年ぶりにギターを触りだした...</summary>
   <author>
      <name></name>
      
   </author>
   
      <category term="txt" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://la-blanche.org/">
      <![CDATA[<img alt="Image011.jpg" src="http://la-blanche.org/img/Image011.jpg" width="300" height="225"  />
 UA-4FX購入。
ここ数日現実逃避の一環として8年ぶりにギターを触りだしたりで、
アンプもエフェクタもないしと言うことでオーディオインターフェースとして買ってみた。
エフェクタとして取りあえずオーバードライブ詰んでてアンプ代わりになればいいやー程度に思っていたら、予想以上に良いかんじ。
再生音の向上も見られるし。真空管エミュレータおもしれー
ギターの方は高音域の拾いが悪い気もするけれど、
そもそも弦が錆びたままで全然ギターの手入れをしていないので
その辺りをしっかりしてから色々弄ってみようと思う。
マイクの拾いも良くなるらしいけど持ってるマイクがミニプラグの為指せないもよう。
まーまずはモニタ用のヘッドフォン買ってからかなぁ。
マイクの目星はつけてあるんだけど、マイク＋スタンド＋ケーブルで10k近くになってしまうので……

取りあえず明日の試験で色々終わり。
滞っていたプログラミングも再開して、あとは溜まってる描きたいネタを描いていこう。
あ、モデリングもまた久しぶりにやりたいな。
賢狼を放置してたし。といっても今見ると色々酷いので1から作り直しの予感。]]>
      
   </content>
</entry>

</feed>
