Caret的有关问题
Caret的问题
创建,确定只调用了一次,并且是在窗口已经创建之后才调用的
获取输入焦点,确定每次都调用到了的
//失去焦点,确定每次都调用到了的
麻烦各位给我看看这是咋回事啊,光标只有第一次能显示,之后就不能显示了。
------解决方案--------------------
while(::ShowCaret(m_hWnd)==FALSE)
{
DWORD dw = GetLastError();//永远返回都是5(拒绝访问)
dw = 0;
}
while改成if试试,免得进入死循环了
------解决方案--------------------
CreateCaret 位置是不是有问题 ?
------解决方案--------------------
你把 “hBitmap” 去掉 (=NULL) ,create 看看
------解决方案--------------------
void COwnerEdit::OnSetFocus(CWnd* pOldWnd)
{
CWnd::OnSetFocus(pOldWnd);//屏蔽试试,不调用默认的基类函数,或移到最后执行
while(::ShowCaret(m_hWnd)==FALSE)
{
DWORD dw = GetLastError();//永远返回都是5(拒绝访问)
dw = 0;
}
}
void COwnerEdit::OnKillFocus(CWnd* pNewWnd)
{
CWnd::OnKillFocus(pNewWnd);//屏蔽试试,或移到最后执行,
HideCaret();
}
创建,确定只调用了一次,并且是在窗口已经创建之后才调用的
static HBITMAP hBitmap = NULL;
static Color color;
m_pCaretImage->GetHBITMAP(color, &hBitmap);//m_pCaretImage是一个GDI+对象,我也试过用CBitmap,也不行
::CreateCaret(m_hWnd, hBitmap, (int)m_pCaretImage->GetWidth(), (int)m_pCaretImage->GetHeight());
获取输入焦点,确定每次都调用到了的
void COwnerEdit::OnSetFocus(CWnd* pOldWnd)
{
CWnd::OnSetFocus(pOldWnd);
while(::ShowCaret(m_hWnd)==FALSE)
{
DWORD dw = GetLastError();//永远返回都是5(拒绝访问)
dw = 0;
}
}
//失去焦点,确定每次都调用到了的
void COwnerEdit::OnKillFocus(CWnd* pNewWnd)
{
CWnd::OnKillFocus(pNewWnd);
HideCaret();
}
麻烦各位给我看看这是咋回事啊,光标只有第一次能显示,之后就不能显示了。
Caret
怪事
------解决方案--------------------
while(::ShowCaret(m_hWnd)==FALSE)
{
DWORD dw = GetLastError();//永远返回都是5(拒绝访问)
dw = 0;
}
while改成if试试,免得进入死循环了
------解决方案--------------------
CreateCaret 位置是不是有问题 ?
------解决方案--------------------
你把 “hBitmap” 去掉 (=NULL) ,create 看看
------解决方案--------------------
void COwnerEdit::OnSetFocus(CWnd* pOldWnd)
{
CWnd::OnSetFocus(pOldWnd);//屏蔽试试,不调用默认的基类函数,或移到最后执行
while(::ShowCaret(m_hWnd)==FALSE)
{
DWORD dw = GetLastError();//永远返回都是5(拒绝访问)
dw = 0;
}
}
void COwnerEdit::OnKillFocus(CWnd* pNewWnd)
{
CWnd::OnKillFocus(pNewWnd);//屏蔽试试,或移到最后执行,
HideCaret();
}