📄 atlwince.h
字号:
void ShowVoiceBar(BOOL bShow = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, IM_VOICEBAR, (WPARAM)bShow, 0L);
}
};
typedef CInkXCtrlT<ATL::CWindow> CInkXCtrl;
#endif // WIN32_PLATFORM_PSPC
///////////////////////////////////////////////////////////////////////////////
// CVoiceRecorderCtrl
template <class TBase>
class CVoiceRecorderCtrlT : public TBase
{
public:
// Constructors
CVoiceRecorderCtrlT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CVoiceRecorderCtrlT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, const POINT pt, LPTSTR pstrFileName, UINT nID, DWORD dwStyle = 0)
{
ATLASSERT(pstrFileName != NULL);
CM_VOICE_RECORDER cmvr = { 0 };
cmvr.cb = sizeof(CM_VOICE_RECORDER);
cmvr.dwStyle = dwStyle;
cmvr.xPos = pt.x;
cmvr.yPos = pt.y;
cmvr.hwndParent = hWndParent;
cmvr.id = nID;
cmvr.lpszRecordFileName = pstrFileName;
m_hWnd = VoiceRecorder_Create(&cmvr);
return m_hWnd;
}
HWND Create(LPCM_VOICE_RECORDER pAttribs)
{
ATLASSERT(pAttribs);
m_hWnd = VoiceRecorder_Create(pAttribs);
return m_hWnd;
}
// Attributes
void Record()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, VRM_RECORD, 0, 0L);
}
void Play()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, VRM_PLAY, 0, 0L);
}
void Stop()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, VRM_STOP, 0, 0L);
}
void Cancel()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, VRM_CANCEL, 0, 0L);
}
void Done()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, VRM_OK, 0, 0L);
}
};
typedef CVoiceRecorderCtrlT<ATL::CWindow> CVoiceRecorderCtrl;
#ifdef WIN32_PLATFORM_PSPC
///////////////////////////////////////////////////////////////////////////////
// CDocListCtrl
template <class TBase>
class CDocListCtrlT : public TBase
{
public:
// Attributes
DOCLISTCREATE m_dlc;
TCHAR m_szPath[MAX_PATH];
// Constructors
CDocListCtrlT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CDocListCtrlT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, WORD wId, LPCTSTR pszFolder = NULL, LPCTSTR pstrFilter = NULL,
WORD wFilterIndex = 0, DWORD dwFlags = DLF_SHOWEXTENSION)
{
ATLASSERT(pstrFilter != NULL); // It seems to need a filter badly!!
::ZeroMemory(&m_dlc, sizeof(DOCLISTCREATE));
::ZeroMemory(m_szPath, sizeof(m_szPath));
if(pszFolder != NULL)
::lstrcpyn(m_szPath, pszFolder, MAX_PATH - 1);
m_dlc.dwStructSize = sizeof(DOCLISTCREATE);
m_dlc.hwndParent = hWndParent;
m_dlc.pszFolder = m_szPath;
m_dlc.pstrFilter = pstrFilter;
m_dlc.wFilterIndex = wFilterIndex;
m_dlc.wId = wId;
m_dlc.dwFlags = dwFlags;
m_hWnd = DocList_Create(&m_dlc);
return m_hWnd;
}
HWND Create(DOCLISTCREATE* pDlc)
{
m_dlc = *pDlc;
m_hWnd = DocList_Create(&m_dlc);
return m_hWnd;
}
// Attributes
void DeleteSel()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, DLM_DELETESEL, 0, 0L);
}
void DisableUpdates()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, DLM_DISABLEUPDATES, 0, 0L);
}
void EnableUpdates()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, DLM_ENABLEUPDATES, 0, 0L);
}
int GetFilterIndex() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, DLM_GETFILTERINDEX, 0, 0L);
}
int GetItemCount() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, DLM_GETITEMCOUNT, 0, 0L);
}
int GetNextItem(int iIndex, DWORD dwRelation = LVNI_ALL) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, DLM_GETNEXTITEM, (WPARAM)iIndex, (LPARAM)dwRelation);
}
int GetFirstItem(DWORD dwRelation = LVNI_ALL) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, DLM_GETNEXTITEM, (WPARAM)-1, (LPARAM)dwRelation);
}
BOOL GetNextWave(int* pIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pIndex);
return (BOOL)::SendMessage(m_hWnd, DLM_GETNEXTWAVE, 0, (LPARAM)pIndex);
}
BOOL GetPrevWave(int* pIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pIndex);
return (BOOL)::SendMessage(m_hWnd, DLM_GETPREVWAVE, 0, (LPARAM)pIndex);
}
int GetSelCount() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, DLM_GETSELCOUNT, 0, 0L);
}
BOOL GetSelPathName(LPTSTR pstrPath, int cchMax) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pstrPath);
return (BOOL)::SendMessage(m_hWnd, DLM_GETSELPATHNAME, (WPARAM)cchMax, (LPARAM)pstrPath);
}
void ReceiveIR(LPCTSTR pstrPath) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pstrPath);
::SendMessage(m_hWnd, DLM_RECEIVEIR, 0, (LPARAM)pstrPath);
}
void Refresh()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, DLM_REFRESH, 0, 0L);
}
BOOL RenameMoveSelectedItems()
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, DLM_RENAMEMOVE, 0, 0L);
}
int SelectAll()
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, DLM_SELECTALL, 0, 0L);
}
HRESULT SelectItem(LPCTSTR pstrPath, BOOL bVisible = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pstrPath);
return (HRESULT)::SendMessage(m_hWnd, DLM_SELECTITEM, (WPARAM)bVisible, (LPARAM)pstrPath);
}
void SendEMail(LPCTSTR pstrAttachment)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, DLM_SENDEMAIL, 0, (LPARAM)pstrAttachment);
}
void SendIR(LPCTSTR pstrPath)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, DLM_SENDIR, 0, (LPARAM)pstrPath);
}
HRESULT SetFilterIndex(int iIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
return (HRESULT)::SendMessage(m_hWnd, DLM_SETFILTERINDEX, (WPARAM)iIndex, 0L);
}
void SetFolder(LPCTSTR pstrPath)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pstrPath);
::SendMessage(m_hWnd, DLM_SETFOLDER, 0, (LPARAM)pstrPath);
}
BOOL SetItemState(int iIndex, const LVITEM* pItem)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pItem);
return (BOOL)::SendMessage(m_hWnd, DLM_SETITEMSTATE, (WPARAM)iIndex, (LPARAM)pItem);
}
BOOL SetItemState(int iIndex, UINT uState, UINT uMask)
{
ATLASSERT(::IsWindow(m_hWnd));
LV_ITEM lvi = { 0 };
lvi.stateMask = uMask;
lvi.state = uState;
return (BOOL)::SendMessage(m_hWnd, DLM_SETITEMSTATE, (WPARAM)iIndex, (LPARAM)&lvi);
}
void SetOneItem(int iIndex, LPCVOID pPA)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, DLM_SETONEITEM, (WPARAM)iIndex, (LPARAM)pPA);
}
void SetSelect(int iIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, DLM_SETSELECT, (WPARAM)iIndex, 0L);
}
void SetSelPathName(LPCTSTR pstrPath)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pstrPath);
::SendMessage(m_hWnd, DLM_SETSELPATHNAME, 0, (LPARAM)pstrPath);
}
BOOL SetSortOrder()
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, DLM_SETSORTORDER, 0, 0L);
}
HRESULT Update()
{
ATLASSERT(::IsWindow(m_hWnd));
return (HRESULT)::SendMessage(m_hWnd, DLM_UPDATE, 0, 0L);
}
BOOL ValidateFolder()
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, DLM_VALIDATEFOLDER, 0, 0L);
}
// Functions
BOOL GetFirstSelectedWaveFile(int* pIndex, LPTSTR szPath, const size_t cchPath)
{
ATLASSERT(::IsWindow(m_hWnd));
return DocList_GetFirstSelectedWaveFile(m_hWnd, pIndex, szPath, cchPath);
}
BOOL GetNextSelectedWaveFile(int* pIndex, LPTSTR szPath, const size_t cchPath)
{
ATLASSERT(::IsWindow(m_hWnd));
return DocList_GetNextSelectedWaveFile(m_hWnd, pIndex, szPath, cchPath);
}
};
typedef CDocListCtrlT<ATL::CWindow> CDocListCtrl;
#endif // WIN32_PLATFORM_PSPC
///////////////////////////////////////////////////////////////////////////////
// CCapEdit
template <class TBase>
class CCapEditT : public TBase
{
public:
// Constructors
CCapEditT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CCapEditT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
HWND hWnd = /*TBase*/CWindow::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
ATLASSERT(hWnd != NULL); // Did you remember to call SHInitExtraControls() ??
return hWnd;
}
// Attributes
static LPCTSTR GetWndClassName()
{
return WC_CAPEDIT;
}
};
typedef CCapEditT<WTL::CEdit> CCapEdit;
///////////////////////////////////////////////////////////////////////////////
// CTTStatic
#ifndef WIN32_PLATFORM_WFSP // Tooltips not supported on SmartPhone
template <class TBase>
class CTTStaticT : public TBase
{
public:
// Constructors
CTTStaticT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CTTStaticT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
HWND hWnd = TBase::Create(hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
ATLASSERT(hWnd != NULL); // Did you remember to call SHInitExtraControls() ??
return hWnd;
}
// Attributes
static LPCTSTR GetWndClassName()
{
return WC_TSTATIC;
}
// Operations
int SetToolTipText(LPCTSTR pstrTipText)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pstrTipText);
ATLASSERT(lstrlen(pstrTipText)<= 253);
LPTSTR pstr = (LPTSTR)_alloca((lstrlen(pstrTipText) + 3) * sizeof(TCHAR));
::lstrcpy(pstr, _T("~~"));
::lstrcat(pstr, pstrTipText);
return SetWindowText(pstr);
}
};
typedef CTTStaticT<WTL::CStatic> CTTStatic;
///////////////////////////////////////////////////////////////////////////////
// CTTButton
template <class TBase>
class CTTButtonT : public TBase
{
public:
// Constructors
CTTButtonT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CTTButtonT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
HWND hWnd = TBase::Create(hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
ATLASSERT(hWnd != NULL); // Did you remember to call SHInitExtraControls() ??
return hWnd;
}
// Attributes
static LPCTSTR GetWndClassName()
{
return WC_TBUTTON;
}
// Operations
int SetToolTipText(LPCTSTR pstrTipText)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(pstrTipText);
ATLASSERT(lstrlen(pstrTipText)<= 253);
LPTSTR pstr = (LPTSTR)_alloca((lstrlen(pstrTipText) + 3) * sizeof(TCHAR));
::lstrcpy(pstr, _T("~~"));
::lstrcat(pstr, pstrTipText);
return SetWindowText(pstr);
}
};
typedef CTTButtonT<WTL::CButton> CTTButton;
#endif // !WIN32_PLATFORM_WFSP
// --- SmartPhone specific controls ---
#ifdef WIN32_PLATFORM_WFSP
///////////////////////////////////////////////////////////////////////////////
// CSpinCtrlT - CSpinCtrl : SmartPhone adapted UpDown control
template <class TBase>
class CSpinCtrlT : public CUpDownCtrlT< TBase >
{
public:
// Constructo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -