| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 |
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
- #include "stdafx.h"
- /////////////////////////////////////////////////////////////////////////////
- // CIPAddressCtrl
- #ifdef AFX_INET_SEG
- #pragma code_seg(AFX_INET_SEG)
- #endif
- CIPAddressCtrl::~CIPAddressCtrl()
- {
- DestroyWindow();
- }
- BOOL CIPAddressCtrl::Create(DWORD dwStyle, const RECT& rect,
- CWnd* pParentWnd, UINT nID)
- {
- // initialize common controls
- VERIFY(AfxDeferRegisterClass(AFX_WNDCOMMCTL_INTERNET_REG));
- // the IP Address Control must be a child
- ASSERT(dwStyle & WS_CHILD);
- CWnd* pWnd = this;
- return pWnd->Create(WC_IPADDRESS, NULL, dwStyle, rect, pParentWnd, nID);
- }
- int CIPAddressCtrl::GetAddress(BYTE& nField0, BYTE& nField1, BYTE& nField2, BYTE& nField3)
- {
- ASSERT(::IsWindow(m_hWnd));
- DWORD dwAddress;
- LRESULT nRetVal = ::SendMessage(m_hWnd, IPM_GETADDRESS, 0, (LPARAM) &dwAddress);
- nField0 = (BYTE) FIRST_IPADDRESS(dwAddress);
- nField1 = (BYTE) SECOND_IPADDRESS(dwAddress);
- nField2 = (BYTE) THIRD_IPADDRESS(dwAddress);
- nField3 = (BYTE) FOURTH_IPADDRESS(dwAddress);
- return nRetVal;
- }
- /////////////////////////////////////////////////////////////////////////////
- // CComboBoxEx
- #ifdef AFX_CMNCTL_SEG
- #pragma code_seg(AFX_CMNCTL_SEG)
- #endif
- BOOL CComboBoxEx::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
- UINT nID)
- {
- // initialize common controls
- VERIFY(AfxDeferRegisterClass(AFX_WNDCOMMCTL_USEREX_REG));
- CWnd* pWnd = this;
- return pWnd->Create(WC_COMBOBOXEX, NULL, dwStyle, rect, pParentWnd, nID);
- }
- int CComboBoxEx::DeleteItem(int iIndex)
- {
- ASSERT(::IsWindow(m_hWnd));
- return (int) ::SendMessage(m_hWnd, CBEM_DELETEITEM, (WPARAM) iIndex, 0);
- }
- BOOL CComboBoxEx::GetItem(COMBOBOXEXITEM* pCBItem)
- {
- ASSERT(::IsWindow(m_hWnd));
- ASSERT(pCBItem != NULL);
- ASSERT(AfxIsValidAddress(pCBItem, sizeof(COMBOBOXEXITEM)));
- return (int) ::SendMessage(m_hWnd, CBEM_GETITEM, 0, (LPARAM) pCBItem);
- }
- int CComboBoxEx::InsertItem(const COMBOBOXEXITEM* pCBItem)
- {
- ASSERT(::IsWindow(m_hWnd));
- ASSERT(pCBItem != NULL);
- ASSERT(AfxIsValidAddress(pCBItem, sizeof(COMBOBOXEXITEM), FALSE));
- return (int) ::SendMessage(m_hWnd, CBEM_INSERTITEM, 0, (LPARAM) pCBItem);
- }
- BOOL CComboBoxEx::SetItem(const COMBOBOXEXITEM* pCBItem)
- {
- ASSERT(::IsWindow(m_hWnd));
- ASSERT(pCBItem != NULL);
- ASSERT(AfxIsValidAddress(pCBItem, sizeof(COMBOBOXEXITEM), FALSE));
- return (int) ::SendMessage(m_hWnd, CBEM_SETITEM, 0, (LPARAM) pCBItem);
- }
- CComboBoxEx::~CComboBoxEx()
- {
- DestroyWindow();
- }
- /////////////////////////////////////////////////////////////////////////////
- // CReBarCtrl
- BOOL CReBarCtrl::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
- UINT nID)
- {
- // initialize common controls
- VERIFY(AfxDeferRegisterClass(AFX_WNDCOMMCTL_COOL_REG));
- CWnd* pWnd = this;
- return pWnd->Create(REBARCLASSNAME, NULL, dwStyle, rect, pParentWnd, nID);
- }
- CImageList* CReBarCtrl::GetImageList() const
- {
- REBARINFO rbi;
- rbi.cbSize = sizeof(rbi);
- rbi.fMask = RBIM_IMAGELIST;
- return GetBarInfo(&rbi) ? CImageList::FromHandle(rbi.himl) : NULL;
- }
- BOOL CReBarCtrl::SetImageList(CImageList* pImageList)
- {
- REBARINFO rbi;
- rbi.cbSize = sizeof(rbi);
- rbi.fMask = RBIM_IMAGELIST;
- rbi.himl = (HIMAGELIST)pImageList->GetSafeHandle();
- return SetBarInfo(&rbi);
- }
- BOOL CReBarCtrl::GetColorScheme(COLORSCHEME* lpcs)
- {
- lpcs->dwSize = sizeof(COLORSCHEME);
- return SendMessage(RB_GETCOLORSCHEME, 0, (LPARAM)lpcs);
- }
- void CReBarCtrl::SetColorScheme(const COLORSCHEME* lpcs)
- {
- ((COLORSCHEME*)lpcs)->dwSize = sizeof(COLORSCHEME);
- SendMessage(RB_SETCOLORSCHEME, 0, (LPARAM)lpcs);
- }
- /////////////////////////////////////////////////////////////////////////////
- // CListCtrl
- BOOL CListCtrl::SetColumnOrderArray(int iCount, LPINT piArray)
- {
- ASSERT(::IsWindow(m_hWnd));
- ASSERT(AfxIsValidAddress(piArray, iCount * sizeof(int), FALSE));
- return (BOOL) ::SendMessage(m_hWnd, LVM_SETCOLUMNORDERARRAY,
- (WPARAM) iCount, (LPARAM) piArray);
- }
- BOOL CListCtrl::GetColumnOrderArray(LPINT piArray, int iCount /* = -1 */)
- {
- ASSERT(::IsWindow(m_hWnd));
- // if -1 was passed, find the count ourselves
- int nCount = iCount;
- if (nCount == -1)
- {
- CHeaderCtrl* pCtrl = GetHeaderCtrl();
- ASSERT(pCtrl != NULL);
- if (pCtrl != NULL)
- nCount = pCtrl->GetItemCount();
- }
- if (nCount == -1)
- return FALSE;
- ASSERT(AfxIsValidAddress(piArray, nCount * sizeof(int)));
- return (BOOL) ::SendMessage(m_hWnd, LVM_GETCOLUMNORDERARRAY,
- (WPARAM) nCount, (LPARAM) piArray);
- }
- BOOL CListCtrl::SetBkImage(HBITMAP hbm, BOOL fTile /*= TRUE*/, int xOffsetPercent /*= 0*/, int yOffsetPercent /*= 0*/)
- {
- LVBKIMAGE lv;
- lv.ulFlags = LVBKIF_SOURCE_HBITMAP;
- if( fTile )
- lv.ulFlags |= LVBKIF_STYLE_TILE;
- else
- lv.ulFlags |= LVBKIF_STYLE_NORMAL;
- lv.hbm = hbm;
- lv.xOffsetPercent = xOffsetPercent;
- lv.yOffsetPercent = yOffsetPercent;
- return SetBkImage(&lv);
- }
- BOOL CListCtrl::SetBkImage(LPTSTR pszUrl, BOOL fTile /*= TRUE*/, int xOffsetPercent /*= 0*/, int yOffsetPercent /*= 0*/)
- {
- LVBKIMAGE lv;
- lv.ulFlags = LVBKIF_SOURCE_URL;
- if( fTile )
- lv.ulFlags |= LVBKIF_STYLE_TILE;
- else
- lv.ulFlags |= LVBKIF_STYLE_NORMAL;
- lv.pszImage = pszUrl;
- lv.xOffsetPercent = xOffsetPercent;
- lv.yOffsetPercent = yOffsetPercent;
- return SetBkImage(&lv);
- }
- BOOL CListCtrl::GetCheck(int nItem) const
- {
- ASSERT(::IsWindow(m_hWnd));
- int nState = (int)::SendMessage(m_hWnd, LVM_GETITEMSTATE, (WPARAM)nItem,
- (LPARAM)LVIS_STATEIMAGEMASK);
- // Return zero if it's not checked, or nonzero otherwise.
- return ((BOOL)(nState >> 12) -1);
- }
- BOOL CListCtrl::SetCheck(int nItem, BOOL fCheck)
- {
- ASSERT(::IsWindow(m_hWnd));
- LVITEM lvi;
- lvi.stateMask = LVIS_STATEIMAGEMASK;
- /*
- Since state images are one-based, 1 in this macro turns the check off, and
- 2 turns it on.
- */
- lvi.state = INDEXTOSTATEIMAGEMASK((fCheck ? 2 : 1));
- return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEMSTATE, nItem, (LPARAM)&lvi);
- }
- /////////////////////////////////////////////////////////////////////////////
- // CHeaderCtrl
- CHeaderCtrl* CListCtrl::GetHeaderCtrl()
- {
- ASSERT(::IsWindow(m_hWnd));
- HWND hWnd = (HWND) ::SendMessage(m_hWnd, LVM_GETHEADER, 0, 0);
- if (hWnd == NULL)
- return NULL;
- else
- return (CHeaderCtrl*) CHeaderCtrl::FromHandle(hWnd);
- }
- BOOL CHeaderCtrl::SetOrderArray(int iCount, LPINT piArray)
- {
- ASSERT(::IsWindow(m_hWnd));
- ASSERT(AfxIsValidAddress(piArray, iCount * sizeof(int), FALSE));
- return (BOOL) ::SendMessage(m_hWnd, HDM_SETORDERARRAY,
- (WPARAM) iCount, (LPARAM) piArray);
- }
- BOOL CHeaderCtrl::GetOrderArray(LPINT piArray, int iCount /* = -1 */)
- {
- ASSERT(::IsWindow(m_hWnd));
- // if -1 was passed, find the count ourselves
- int nCount = iCount;
- if (nCount == -1)
- {
- nCount = GetItemCount();
- if (nCount == -1)
- return FALSE;
- }
- ASSERT(AfxIsValidAddress(piArray, iCount * sizeof(int)));
- return (BOOL) ::SendMessage(m_hWnd, HDM_GETORDERARRAY,
- (WPARAM) iCount, (LPARAM) piArray);
- }
- /////////////////////////////////////////////////////////////////////////////
- // CProgressCtrl
- void CProgressCtrl::GetRange(int& nLower, int& nUpper)
- {
- ASSERT(::IsWindow(m_hWnd));
- PBRANGE range;
- ::SendMessage(m_hWnd, PBM_GETRANGE, (WPARAM) FALSE, (LPARAM) &range);
- nLower = range.iLow;
- nUpper = range.iHigh;
- return;
- }
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _AFX_ENABLE_INLINES
- static const char _szAfxWinInl[] = "afxcmn2.inl";
- #undef THIS_FILE
- #define THIS_FILE _szAfxWinInl
- #define _AFXCMN_INLINE
- #include "afxcmn2.inl"
- #endif //_AFX_ENABLE_INLINES
- /////////////////////////////////////////////////////////////////////////////
- #ifdef AFX_INIT_SEG
- #pragma code_seg(AFX_INIT_SEG)
- #endif
- IMPLEMENT_DYNAMIC(CIPAddressCtrl, CWnd)
- IMPLEMENT_DYNAMIC(CReBarCtrl, CWnd)
- /////////////////////////////////////////////////////////////////////////////
|