12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // EditExt.cpp: implementation of the CEditExt class.
- //
- //////////////////////////////////////////////////////////////////////
- #include "stdafx.h"
- #include "EditExt.h"
- #include "library.h"
- #ifdef _DEBUG
- #undef THIS_FILE
- static char THIS_FILE[]=__FILE__;
- #define new DEBUG_NEW
- #endif
- WNDPROC CEditExt::m_cWndProc = NULL;
- //////////////////////////////////////////////////////////////////////
- // Construction/Destruction
- //////////////////////////////////////////////////////////////////////
- LRESULT CEditExt::DefWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
- {
- CWnd *pWnd = NULL;
- CPoint point;
- LRESULT lReturn;
- pWnd = CWnd::FromHandle( hWnd );
- switch( message )
- {
- case WM_PAINT:
- case WM_NCPAINT:
- lReturn=CallWindowProc( m_cWndProc, hWnd, message, wParam, lParam );
- OnPaint( pWnd );
- return lReturn;
- default:
- break;
- }
- return CallWindowProc( m_cWndProc, hWnd, message, wParam, lParam );
- }
-
- void CEditExt::OnPaint( CWnd *pWnd )
- {
- CDC* pDC = pWnd->GetDC();
- CRect m_rcDropDown;
- RECT Rect;
- MEMDCXP Mdcxp;
- HANDLE hHandle;
- // 获取窗口大小
- GetWindowRect(pWnd->GetSafeHwnd (), &Rect);
- Rect.right -= Rect.left;
- Rect.bottom -= Rect.top;
- Rect.top = Rect.left = 0;
-
- // 获取内存兼容设备场景
- Mdcxp.hWnd = pWnd->GetSafeHwnd ();
- Mdcxp.bTransfer = TRUE;
- Mdcxp.hBitmap = NULL;
- GetMemDCXP(&Mdcxp);
-
- // 绘制外框
- FrameRect(Mdcxp.hMemDC, &Rect, (HBRUSH) g_frameedgebrush);
- // 绘制内框
- InflateRect(&Rect, -1, -1);
- hHandle = (HANDLE) ::GetStockObject (WHITE_BRUSH);
- FrameRect(Mdcxp.hMemDC, &Rect, (HBRUSH) hHandle);
- /* InflateRect(&Rect, -1, -1);
- Rect.left = Rect.right - GetSystemMetrics(SM_CYVTHUMB);
- FrameRect(Mdcxp.hMemDC, &Rect, (HBRUSH) hHandle);
- Rect.left++;*/
-
- // 还原并释放内存设备场景
- Mdcxp.bTransfer = TRUE;
- ReleaseMemDCXP(&Mdcxp);
- }
|