📄 dialogwindow.h
字号:
/* * * dialogwindow.h * Copyright (C) 2006 Michael H. Overlin This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact at poster_printer@yahoo.com */#ifndef DIALOGWINDOW_H#define DIALOGWINDOW_H#include "utils.h"#include <windows.h>#include <vector>class DialogWindow {public: DialogWindow(HINSTANCE hInst, IN WORD wTemplateID); virtual ~DialogWindow(); BOOL DoCreateDialog(class Window* pw); BOOL DoCreateDialog(HWND hwndParent); INT_PTR DoModalDialog(HWND hwndParent); // NOT RELIABLE, HAVE TO TAKE INTO ACCOUNT FONT CHOICE#if 0 void GetSizeFromTemplate(SIZE& sz) const;#endif BOOL GetAutoDelete(void) const { return m_bAutoDelete; } void SetAutoDelete(IN BOOL b) { m_bAutoDelete = b; } // WINDOWS API BOOL CheckDlgButton(int nIDButton, UINT nCheck) { return ::CheckDlgButton(m_hdlg, nIDButton, nCheck); } BOOL DestroyWindow(void) { return ::DestroyWindow(m_hdlg); } virtual BOOL EndDialog(INT_PTR nResult) { return ::EndDialog(m_hdlg, nResult); } HWND GetDlgItem(int nIDDlgItem) const { return ::GetDlgItem(m_hdlg, nIDDlgItem); } UINT GetDlgItemText(int nIDDlgItem, LPTSTR lptstrString, int nMaxCount) { return ::GetDlgItemText(m_hdlg, nIDDlgItem, lptstrString, nMaxCount); } HMENU GetMenu(void) { return ::GetMenu(m_hdlg); } LONG GetWindowLong(int nIndex) const { return ::GetWindowLong(m_hdlg, nIndex); } BOOL GetWindowRect(OUT RECT& r) const { return ::GetWindowRect(m_hdlg, &r); } UINT IsDlgButtonChecked(int nIDButton) const { return ::IsDlgButtonChecked(m_hdlg, nIDButton); } BOOL IsDialogMessage(LPMSG lpMsg) { return ::IsDialogMessage(m_hdlg, lpMsg); } BOOL IsWindow(void) const { return ::IsWindow(m_hdlg); } BOOL KillTimer(UINT_PTR idTimer) { return ::KillTimer(m_hdlg, idTimer); } BOOL PostMessage(UINT msg, WPARAM wParam, LPARAM lParam) { return ::PostMessage(m_hdlg, msg, wParam, lParam); } LRESULT SendMessage(UINT msg, WPARAM wParam, LPARAM lParam) { return ::SendMessage(m_hdlg, msg, wParam, lParam); } LRESULT SendDlgItemMessage(int nIDDlgItem, UINT msg, WPARAM wParam, LPARAM lParam) { return ::SendDlgItemMessage(m_hdlg, nIDDlgItem, msg, wParam, lParam); } HWND SetActiveWindow(void) { return ::SetActiveWindow(m_hdlg); } BOOL SetForegroundWindow(void) { return ::SetForegroundWindow(m_hdlg); } UINT_PTR SetTimer(UINT_PTR idTimer, UINT ms) { return ::SetTimer(m_hdlg, idTimer, ms, NULL); } BOOL SetWindowPos(HWND hwndInsertAfter, int x, int y, int cx, int cy, UINT uFlags) { return ::SetWindowPos(m_hdlg, hwndInsertAfter, x, y, cx, cy, uFlags); } BOOL SetWindowText(LPCTSTR lptstr) { return ::SetWindowText(m_hdlg, lptstr); } BOOL SetDlgItemText(int nIDDlgItem, LPCTSTR lptstr) { return ::SetDlgItemText(m_hdlg, nIDDlgItem, lptstr); } BOOL ShowWindow(int nCmdShow) { return ::ShowWindow(m_hdlg, nCmdShow); } // SHORT-HAND API BOOL CenterWindowAboveParent(void); BOOL EnableDlgItem(IN int nIDDlgItem, IN BOOL bEnable) { return ::EnableWindow(this->GetDlgItem(nIDDlgItem), bEnable); } LONG GetWindowStyle(void) const { return this->GetWindowLong(GWL_STYLE); } BOOL IsDlgItemEnabled(IN int nIDDlgItem) const { return ::IsWindowEnabled(this->GetDlgItem(nIDDlgItem)); } void SetHasSystemMenu(IN BOOL b) ; void SetWindowStyleAndRedraw(DWORD dwStyle) ; BOOL SetWindowTopLeft(int x, int y) { return this->SetWindowPos(NULL, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER); } BOOL SetWindowZOrderToTop(void) { return this->SetWindowPos(HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW); } static BOOL TheirIsDialogMessage(::MSG& msg);protected: inline HINSTANCE hinst(void) const { return m_hinst; } inline HWND hdlg(void) const { return m_hdlg; } inline HWND hwndParent(void) const { return GetParent(m_hdlg); } virtual BOOL InitMsg(WPARAM wParam, LPARAM lParam); virtual BOOL CommandMsg(WPARAM wParam, LPARAM lParam); virtual BOOL CommonControlColorNotifyMsg(UINT msg, WPARAM wParam, LPARAM lParam); virtual BOOL NotificationMsg(UINT msg, WPARAM wParam, LPARAM lParam); virtual BOOL NotifyMsg(WPARAM wParam, LPARAM lParam); virtual BOOL ScrollMsg(UINT msg, WPARAM wParam, LPARAM lParam); virtual BOOL TimerMsg(WPARAM wParam, LPARAM lParam); virtual BOOL DlgProc(UINT msg, WPARAM wParam, LPARAM lParam);private: HINSTANCE m_hinst; HWND m_hdlg; WORD m_wTemplateID; BOOL m_bAutoDelete; static BOOL CALLBACK TheirDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) ;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -