[1408]
メモです。
hor
・改行位置より後ろにキャレットがあるときに正規表現で下検索を行うと、その行の改行位置に移動してしまう。
・ステータスバーがあればステータスバーに、無い時はウィンドウタイトルにメッセージを送ります。
( 置換ダイアログが出てるときはなぜかうまく行かない… )
void CEditView::SendStatusMassage( const char* msg ){
CEditWnd* pCEditWnd = ( CEditWnd* )::GetWindowLong( ::GetParent( m_hwndParent ) , GWL_USERDATA );
if( NULL == pCEditWnd->m_hwndStatusBar ){
HDC hdc;
POINT po,poFrame;
RECT rc,rcFrame;
HFONT hFontOld;
HWND hwndFrame;
int nStrLen;
char szText[64];
wsprintf( szText, "%s ", msg );
hwndFrame = ::GetParent( m_hwndParent );
hdc = ::GetWindowDC( hwndFrame );
poFrame.x = 0;
poFrame.y = 0;
::ClientToScreen( hwndFrame, &poFrame );
::GetWindowRect( hwndFrame, &rcFrame );
po.x = rcFrame.right - rcFrame.left;
po.y = poFrame.y - rcFrame.top;
hFontOld = (HFONT)::SelectObject( hdc, m_hFontCaretPosInfo );
nStrLen = 30;
rc.left = po.x - nStrLen * m_nCaretPosInfoCharWidth - 5;
rc.right = rc.left + nStrLen * m_nCaretPosInfoCharWidth;
rc.top = po.y - m_nCaretPosInfoCharHeight - 2;
rc.bottom = rc.top + m_nCaretPosInfoCharHeight;
::SetTextColor( hdc, ::GetSysColor( COLOR_MENUTEXT ) );
::SetBkColor( hdc, ::GetSysColor( COLOR_MENU ) );
::ExtTextOut( hdc,rc.left,rc.top,ETO_OPAQUE,&rc,szText,nStrLen,m_pnCaretPosInfoDx);
::SelectObject( hdc, hFontOld );
::ReleaseDC( hwndFrame, hdc );
}else{
::SendMessage( pCEditWnd->m_hwndStatusBar,SB_SETTEXT,0 | SBT_NOBORDERS,(LPARAM) (LPINT)msg );
}
}