Windows Mobile / Pocket PC:如何在MFC或Win32中更改聚焦/未聚焦的CREdit,CListCtrl,CButton的边框颜色

时间:2009-06-10 08:10:09

标签: c++ mfc windows-mobile windows-ce

如何使用MFC或Win32 API更改WinCE / Windows Mobile 5/6中聚焦/未聚焦CEdit,CListCntl,CButton的边框颜色?

3 个答案:

答案 0 :(得分:1)

您可以通过派生自己的CEdit类并覆盖WM_NCPAINT消息来实现这样的效果,这允许您自己绘制非客户区域并在焦点更改时绘制自己的边框:

void CMyEdit::OnNcPaint() 
{
    CWindowDC dc(this);
    CRect rect;
    GetWindowRect(&rect);
    dc.Draw3dRect(0, 0, rect.Width(), rect.Height(), RGB(0,0,255) , RGB(255,0,0) );
}

答案 1 :(得分:0)

我不确定你可以不实现自定义绘制。

Windows Mobile中的MFC几乎与win32版本完全相同。因此,如果你能找到你想要的在win32中运行的例子,那么它很可能也适用于windows mobile。

答案 2 :(得分:0)

我发现这个技巧here绘制无边框控件,然后从其父级绘制边框。或者制作一个略大于控件的静态控件来绘制边框。

有没有更好的主意?如使用Window Clipping Region或其他什么?

<强> 更新
Here是与MSFT讨论的主题