2008年09月30日

ページランク更新

 今日も新タイプ制作をしました。
 まず、昨日書いたドッキングビューのサイズ変更時の再描画がうまくいかない、という件についてですが、これはCChildViewのスタイルに「WS_CLIPSIBLINGS | WS_CLIPCHILDREN」を追加するとうまくいくようになりました。

 次に、今日は「CMFCListCtrl」についていろいろ調べてみました。
 このクラスは、今までのものにくらべて、カラムヘッダへソートマークが表示されるのと、複数列でのデータの同時並べ替えができるようになったのが特長らしいのですが、前者の機能は使ってすぐわかるのですが、後者のほうがいまいちどういった機能なのかわかりません。

 そこで、ソートについていろいろ調べてみると、「Sort」というそれらしい関数があったので使ってみるとソートされませんでした。
 さらによく調べてみると、「OnCompareItems」という関数があり、「既定の実装では、常に 0 が返されます」ということなので、これが原因でうまくソートされなかったのだと思い、この関数をオーバーライドして関数内でパラメータを比較して、その結果を返すようにしたのですが、それでもうまくソートされませんでした。

 この関数内で引数を見てみると、カラム番号はきちんと来ているのに、比較用のパラメータは2つとも常に"0"になっていたためうまくソートされなかったみたいです。
 まだ、この原因は調べていませんが、恐らく今までと同様にきちんとパラメータに値が入るように設定しなければいけないんだと思います。
 といいながら、私はいつも仮想リストビューにしてしまうので、あまり関係がなかったりするんですけどね。
 今回は、とりあえず新しい機能がどんなものか確かめようとしてうまくいかなかったのでここまで調べてみた、という程度だったりします。

 その他に目新しいところでは、個々のセルのテキストの色やフォント、背景色を簡単に変更できるオーバーライド可能な関数ができていたことです。
 といっても、今までもカスタムドローを使えば簡単にできていたので、それほど便利な機能でもなさそうですが、比較的記述が単純になるのがいいかもしれません。

 次に、サイトのページランクが更新されたようです。
 私のサイトは軒並み1ずつ上がっているようでした。
 いろんなサイトをざっと見た感じだと、全体的に上がっているような印象でした。
ランキングへ  posted by 遠雷 at 00:47 | コメント(0) | MFC

2008年09月29日

バグ解消!

 今日はまず、「ことわざの部屋」の「」の項目を更新しました。
 今回は64個追加の2ページ追加になりました。

 次に、昨日書いたドッキングビューの表示/非表示メニューが機能しない、というバグについて原因がわかりました。
 それは、「MainFrm.cpp」内の「OnCmdMsg」処理のところで、「return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);」となっているのが原因でした。
 ここの「CFrameWnd」を「CFrameWndEx」に変更すればきちんとメニューは動作するようになりました。
 これでゼロから作り直ししなくて済みました。

 この原因がわかったきっかけは、同じドキュメントなしのプロジェクトでもMDI(マルチドキュメントタイプ)で作るときちんと動作するので、ここからこの場所に目がいき間違いに気付いた、という訳です。

 わかってしまえば簡単なことなのですが、結局、たったこの2文字のためにずいぶんと悩まされました。
 この部分はテンプレートを適用し、最初に作成した時からこうなっているので、MS側のミスですよね。
 新しいテンプレートになって、ここも変更しなければいけないのに、変更し忘れたんでしょうね。

 これで一つ問題が解決し次へ進めると思い、次の処理についてやっていると、またすぐに問題にぶち当たってしまいました。
 それは、同じくドッキングビューについてなのですが、このビューの中にコントロールを作り表示させるようにして、ビューをサイズ変更した時にこのコントロールもサイズ変更しようとすると、小さくなった時はきちんと再描画されるのですが、なぜか大きくなった時のみ再描画されないのです。

 これについても、前回のものと同様にドキュメントありのプロジェクトでは問題なく動作するのですが、なぜか今のプロジェクトではうまく動作しないのです。
 もちろん処理部分のコードはまったく同じなので、こちら側のミスではなさそうです。

 ということで、また新たな問題が出てきたので何とかして解決しなければ・・・。
ランキングへ  posted by 遠雷 at 00:44 | コメント(0) | MFC