author | Michael Krelin <hacker@klever.net> | 2006-02-03 01:05:14 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2006-02-03 01:05:14 (UTC) |
commit | 51d59e6f7f45b8f4a60d2933e50bb8ee0c2ea20d (patch) (unidiff) | |
tree | a6693752131aaa39e56ebbca841179a8df4230ef /PumpKINDlg.cpp | |
parent | a772d9f284b4c2a909c30ea33a132a487d932600 (diff) | |
download | pumpkin-51d59e6f7f45b8f4a60d2933e50bb8ee0c2ea20d.zip pumpkin-51d59e6f7f45b8f4a60d2933e50bb8ee0c2ea20d.tar.gz pumpkin-51d59e6f7f45b8f4a60d2933e50bb8ee0c2ea20d.tar.bz2 |
made main window resizable
git-svn-id: http://svn.klever.net/kin/pumpkin/trunk@146 fe716a7a-6dde-0310-88d9-d003556173a8
-rw-r--r-- | PumpKINDlg.cpp | 84 |
1 files changed, 82 insertions, 2 deletions
diff --git a/PumpKINDlg.cpp b/PumpKINDlg.cpp index 4cb1633..9786ef0 100644 --- a/PumpKINDlg.cpp +++ b/PumpKINDlg.cpp | |||
@@ -131,2 +131,6 @@ void CPumpKINDlg::DoDataExchange(CDataExchange* pDX) | |||
131 | //{{AFX_DATA_MAP(CPumpKINDlg) | 131 | //{{AFX_DATA_MAP(CPumpKINDlg) |
132 | DDX_Control(pDX, ID_HELP, m_HelpCtl); | ||
133 | DDX_Control(pDX, IDC_PUT, m_PutCtl); | ||
134 | DDX_Control(pDX, IDC_GET, m_GetCtl); | ||
135 | DDX_Control(pDX, IDC_EXIT, m_ExitCtl); | ||
132 | DDX_Control(pDX, IDC_LISTENING, m_ListenCtl); | 136 | DDX_Control(pDX, IDC_LISTENING, m_ListenCtl); |
@@ -158,2 +162,3 @@ BEGIN_MESSAGE_MAP(CPumpKINDlg, CDialog) | |||
158 | ON_COMMAND(ID_TRAY_SHOWPUMPKINWINDOW, OnTrayShowpumpkinwindow) | 162 | ON_COMMAND(ID_TRAY_SHOWPUMPKINWINDOW, OnTrayShowpumpkinwindow) |
163 | ON_COMMAND(ID_TRAY_LISTEN, OnTrayListen) | ||
159 | ON_COMMAND(ID_TRAY_EXIT, OnTrayExit) | 164 | ON_COMMAND(ID_TRAY_EXIT, OnTrayExit) |
@@ -170,3 +175,4 @@ BEGIN_MESSAGE_MAP(CPumpKINDlg, CDialog) | |||
170 | ON_BN_CLICKED(IDC_LISTENING, OnListening) | 175 | ON_BN_CLICKED(IDC_LISTENING, OnListening) |
171 | ON_COMMAND(ID_TRAY_LISTEN, OnTrayListen) | 176 | ON_WM_GETMINMAXINFO() |
177 | ON_WM_SIZE() | ||
172 | //}}AFX_MSG_MAP | 178 | //}}AFX_MSG_MAP |
@@ -203,3 +209,2 @@ BOOL CPumpKINDlg::OnInitDialog() | |||
203 | 209 | ||
204 | |||
205 | m_Images.Create(16,16,TRUE,2,1); | 210 | m_Images.Create(16,16,TRUE,2,1); |
@@ -227,2 +232,16 @@ CRect listrc; | |||
227 | 232 | ||
233 | CRect wrci, wrco; | ||
234 | GetWindowRect(&wrco); | ||
235 | GetClientRect(&wrci); | ||
236 | CRect brc; | ||
237 | m_GetCtl.GetWindowRect(&brc); ScreenToClient(&brc); | ||
238 | m_rightGapButtons = wrci.right-brc.right; | ||
239 | m_List.GetWindowRect(&brc); ScreenToClient(&brc); | ||
240 | m_rightGapList = wrci.right-brc.right; | ||
241 | m_ListenCtl.GetWindowRect(&brc); ScreenToClient(&brc); | ||
242 | m_bottomGapListen = wrci.bottom-brc.bottom; | ||
243 | m_Log.GetWindowRect(&brc);ScreenToClient(&brc); | ||
244 | m_bottomGapLog = wrci.bottom-brc.bottom; | ||
245 | m_MinSize.cx = wrco.Width(); m_MinSize.cy=wrco.Height(); | ||
246 | |||
228 | CRect rc, drc; | 247 | CRect rc, drc; |
@@ -2079 +2098,62 @@ void CPumpKINDlg::LogLine(LPCTSTR str) | |||
2079 | } | 2098 | } |
2099 | |||
2100 | void CPumpKINDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) | ||
2101 | { | ||
2102 | CDialog::OnGetMinMaxInfo(lpMMI); | ||
2103 | if(m_MinSize.cx>0 && m_MinSize.cy>0){ | ||
2104 | lpMMI->ptMinTrackSize.x = m_MinSize.cx; | ||
2105 | lpMMI->ptMinTrackSize.y = m_MinSize.cy; | ||
2106 | } | ||
2107 | } | ||
2108 | |||
2109 | void CPumpKINDlg::OnSize(UINT nType, int cx, int cy) | ||
2110 | { | ||
2111 | CDialog::OnSize(nType, cx, cy); | ||
2112 | if(nType==SIZE_RESTORED) | ||
2113 | RecalcLayout(cx,cy); | ||
2114 | } | ||
2115 | |||
2116 | void CPumpKINDlg::RecalcLayout(int,int) | ||
2117 | { | ||
2118 | CRect wrc; | ||
2119 | GetClientRect(&wrc); | ||
2120 | AdjustButton(m_GetCtl,wrc); | ||
2121 | AdjustButton(m_PutCtl,wrc); | ||
2122 | AdjustButton(m_AbortCtl,wrc); | ||
2123 | AdjustButton(m_HelpCtl,wrc); | ||
2124 | AdjustButton(m_ExitCtl,wrc); | ||
2125 | AdjustButton(m_OptionsCtl,wrc); | ||
2126 | CRect brc; | ||
2127 | m_List.GetWindowRect(&brc); ScreenToClient(&brc); | ||
2128 | m_List.SetWindowPos( | ||
2129 | 0, | ||
2130 | brc.left, brc.top, | ||
2131 | wrc.right-m_rightGapList-brc.left, brc.bottom-brc.top, | ||
2132 | SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOZORDER|SWP_NOCOPYBITS ); | ||
2133 | m_Log.GetWindowRect(&brc); ScreenToClient(&brc); | ||
2134 | m_Log.SetWindowPos( | ||
2135 | 0, | ||
2136 | brc.left, brc.top, | ||
2137 | wrc.right-m_rightGapButtons-brc.left, wrc.bottom-m_bottomGapLog-brc.top, | ||
2138 | SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOZORDER|SWP_NOCOPYBITS ); | ||
2139 | m_ListenCtl.GetWindowRect(&brc); ScreenToClient(&brc); | ||
2140 | m_ListenCtl.SetWindowPos( | ||
2141 | 0, | ||
2142 | wrc.right-brc.Width()-m_rightGapButtons, wrc.bottom-brc.Height()-m_bottomGapListen, | ||
2143 | 0,0, | ||
2144 | SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOSIZE|SWP_NOZORDER|SWP_NOCOPYBITS ); | ||
2145 | int i = m_Log.GetCount(); | ||
2146 | if(i!=LB_ERR) | ||
2147 | m_Log.SetCurSel(i-1); | ||
2148 | } | ||
2149 | |||
2150 | void CPumpKINDlg::AdjustButton(CWnd& w,CRect& wrc) | ||
2151 | { | ||
2152 | CRect brc; | ||
2153 | w.GetWindowRect(&brc); ScreenToClient(&brc); | ||
2154 | w.SetWindowPos( | ||
2155 | 0, | ||
2156 | wrc.right-brc.Width()-m_rightGapButtons, brc.top, | ||
2157 | 0, 0, | ||
2158 | SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOSIZE|SWP_NOZORDER|SWP_NOCOPYBITS ); | ||
2159 | } | ||