【发布时间】:2018-03-21 09:06:31
【问题描述】:
专家!
我正在使用一个继承 CWnd 的类来使用水平滚动条使内容可见
我要创建的控件如下所示:
不过,我有一些问题,留下一个问题
当按钮获得焦点时,它会变为蓝色。如果按下另一个按钮,则接收到现有焦点的按钮应该没有焦点。
按钮没有释放焦点,如第二张图片所示。
但是,上述问题是在Dialog中实现时出现的,而不是在SDI中。
我需要帮助解决这个问题。
自定义控件创建代码;
m_ScrollWnd.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), this, 1234);
BOOL CScrollWnd::Create(DWORD dwStyle, CRect &rect, CWnd *pParent, UINT nID)
{
dwStyle |= ((WS_HSCROLL) );
return CWnd::Create(CScrollWnd::IID, nullptr, dwStyle, rect, pParent, nID);
}
m_Button3.Create(_T("Hello3"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(0, 0, 0, 0), this, 1238);
【问题讨论】:
-
另一个问题是
WS_EX_CONTROLPARENT标志没有被使用,所以用户将不能TAB 进出滚动窗口。修复:m_ScrollWnd.CreateEx(WS_EX_CONTROLPARENT, ...);