Visual Studio 2010パッケージ版を購入しまして、試しにWPFで遊んでいたんですが、メニューの文字列が何故か上に寄ってます。
先行き不安な感じです。

Edge2

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">

    <DockPanel>
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="ファイル(_F)">
                <MenuItem Header="新規作成(_N)" InputGestureText="Ctrl+N">
                    <MenuItem.Icon>
                        <Image Source="Image/NewDocumentHS.png" Width="16" Height="16"/>
                    </MenuItem.Icon>
                </MenuItem>
                <MenuItem Header="開く(_O)" InputGestureText="Ctrl+O" />
                <Separator />
                <MenuItem Header="終了(_X)" />
            </MenuItem>
        </Menu>
        <TextBox></TextBox>
    </DockPanel>
   
</Window>

—-
追記
メニューフォントを「MS UI Gothic」なんかに変えていると駄目みたいです。
メイリオでしたら上に寄らずにちょうど良い感じに見えます。
たぶんバグだとは思うのですが、どうなんでしょうね。

2010
5月
07

すごいですね、これ。
ファミコン世代にはたまらんです。

2010
4月
22

(以下、お食事中の方はご遠慮下さい。)

えーと、↓この日記から約1年3ヶ月ですかね。
https://takabosoft.com/20090122102755.html

( ゚д゚) またしても強烈な下痢を味わいました。

腹痛&微熱で会社を休んで寝ていたら、だんだん症状が悪化して

  • 下痢
    ちなみに子供の頃、下痢の最強クラスのことをおかんは「新幹線」と呼称していたが、今回もこの新幹線である。
  • 嘔吐
  • 高熱
  • 手足顔の痺れ
  • めまい
  • 過呼吸

ってどんだけー!

しかも住んでる家に他に頼れる家族が誰もいない(笑)

本当に、あまたが馬鹿になっちゃうかと思いました(ゲリラの歌に掛けて)。

ふと実家の母の事を思い出し、連絡してみたらご在宅でいらっしゃったので
迎え&病院まで連れて行って頂きました。

病院の先生とおかんには感謝してもしきれません。

さて、今日からの目標は「『二度あることは三度ある』の延命方法」です。
よろしくお願いいたします。

ドッターの皆さんはとりあえず↓の動画を見ていただければ、内に秘めた想いが溢れ出すと思います!

第四回の作品を募集中とのことで、詳しい参加規約は公式ブログの方をどうぞ。
http://amaisakura.blog28.fc2.com/blog-entry-30.html

締め切りは2010年7月2日でして、まだまだ時間がありますので、興味のある方は参加されてみてはいかがでしょうか??

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のバグ一覧とかどっかにまとまってたりしないのかな・・・。

記事検索

アーカイブ