Edge1

↑右がリソースエディタで貼ったツリーコントロールで、
左が↓のコードで貼ったツリーコントロール。

// m_TreeはCTreeCtrl型
m_Tree.CreateEx(WS_EX_CLIENTEDGE, WS_CHILD | WS_VISIBLE | TVS_SHOWSELALWAYS, CRect(10, 10, 200, 200), 
this, 0);
m_Tree.InsertItem(_T("ああああ"));

見てお判りの通りWS_EX_CLIENTEDGEが付きません。
CTreeCtrl::CreateExのソースを見てみると、変なことやってますので、そりゃ付かないですね。

BOOL CTreeCtrl::CreateEx(DWORD dwExStyle, DWORD dwStyle, const RECT& rect,
	CWnd* pParentWnd, UINT nID)
{
	BOOL bRet = Create(dwStyle, rect, pParentWnd, nID);
	if (bRet && dwExStyle != 0)
	{
		bRet = ModifyStyleEx(0, dwExStyle);
	}
	return bRet;
}

かと言って

m_Tree.CreateEx(0, WS_CHILD | WS_VISIBLE | TVS_SHOWSELALWAYS, CRect(10, 10, 200, 200), this, 0);
m_Tree.ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_FRAMECHANGED);
m_Tree.InsertItem(_T("ああああ"));

こんなコードにしても、↓のようにビジュアルテーマ(?)が適用されません。
Edge5
(WS_BORDERだとちょっと濃い枠が付くため、これもちょっと違います。)

回避方法としては、

m_Tree.CWnd::CreateEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, _T(""), WS_CHILD | WS_VISIBLE | TVS_SHOWSELALWAYS, CRect(10, 10, 200, 200), this, 0);
m_Tree.InsertItem(_T("ああああ"));

というように、CWnd::CreateExを直接呼び出してしまう事ぐらいでしょうか。

これで一応リソースエディタで貼った物と同じ枠が付きます。
Edge6

MFCのバグ一覧とかどっかにまとまってたりしないのかな・・・。

DirectShowの動画編集機能(DES)を使っていろいろ実験していたところ、
アルファブレンディングがどうにも上手く行かなかった。

http://msdn.microsoft.com/ja-jp/library/cc352035.aspx

ちゃんとやったつもりが、動画プレビュー時に何故かアプリが何事もなかったかのように終了してしまう(例外なども無し)。
各関数のエラー値を見たりエラーログ出力機能を使ったりしても原因を特定できず・・・。

ふと、コンパイルしたEXEをエクスプローラ上から起動してみたら上手く起動できましたorz
なんですかこれ、Vsual Studioの「デバッグの停止」が誤爆してるんだろうか??

新年あけましておめでとうございます。
本年もよろしくお願いいたします。

昨年を振り返ってみると、iPhoneアプリなど新しい分野に挑戦する事が出来たので、良い1年だったなぁと思います。

触った言語としましては、

  • C++:多め
  • ObjectiveC:多め
  • C:ちょろっと
  • AIR(ActionScript):そこそこ

と言った感じでした。
アパッチモジュールをCでちょこっと書いた時はしんどかったですが、それもなかなか良い経験だったなぁと思います(やっぱりオブジェクト指向言語の方が良いです)。

今年楽しみにしていることと言えば、まずは

  • グランツーリスモ5
  • Visual Studio 2010

あたりでしょうか。

特にVS2010はベータ版を触ってみたところ、MFCのクラスウィザードが復活しており、イベントハンドラの一括追加ができるようになったようです。
(VS2008までは、イベントハンドラが一つずつしか追加できないようで、すごく面倒でした。)
これだけでも買う価値は有るかと思います。

今年もしばらくはまだ忙しい時期が続きそうですが、またいろんな事に挑戦していきたいと思いますので、お付き合いいただければと思います。

今話題沸騰中(?)のやつです。
http://www.youtube.com/watch?v=wouC3Fegpb0

事実関係はよくわかりませんが、
そんなことよりAメロがちょっと違うのが気になって仕方ないです。
(他の違う部分はたぶんアレンジなんだろうけど、メロだけはたぶん耳コピミスなんじゃないのかなぁ・・・)

メロがちょっと違うと言えば、FF12のファンファーレもちょっとメロディが変わっていたので、そこが気になって仕方ないです(いつものメロディが好きです)。

例えば、次のような事をやると、0xE8008017エラーが出ます。

  1. プロジェクト内に日本語のファイル名のリソースがある状態でAdHocコンパイル
  2. コンパイルしたアプリをmac上でZIP圧縮
  3. ↑をwindows上で解凍してiTunesへ放り込んで同期を行う

どうやら、日本語ファイル名なんかはWindows上で解凍した時点で文字化けしてしまうため、iPhone/iPod touchへインストール後にリソースチェックか何かで指定されたファイルが見つからん!という感じのエラーが出てしまっているんだと思われます。

日本語ファイル名を英数字のみにすれば解消されるはずです。

ちなみに、私の場合は「変更点.rtf」をプロジェクトに入れてしまっていた事が原因でした(^^;

記事検索

アーカイブ