// ComboDialog.cpp | |
#include "StdAfx.h" | |
#include "ComboDialog.h" | |
#include "../../../Windows/Control/Static.h" | |
#ifdef LANG | |
#include "LangUtils.h" | |
#endif | |
using namespace NWindows; | |
bool CComboDialog::OnInit() | |
{ | |
#ifdef LANG | |
LangSetDlgItems(*this, NULL, 0); | |
#endif | |
_comboBox.Attach(GetItem(IDC_COMBO)); | |
/* | |
// why it doesn't work ? | |
DWORD style = _comboBox.GetStyle(); | |
if (Sorted) | |
style |= CBS_SORT; | |
else | |
style &= ~CBS_SORT; | |
_comboBox.SetStyle(style); | |
*/ | |
SetText(Title); | |
NControl::CStatic staticContol; | |
staticContol.Attach(GetItem(IDT_COMBO)); | |
staticContol.SetText(Static); | |
_comboBox.SetText(Value); | |
FOR_VECTOR (i, Strings) | |
_comboBox.AddString(Strings[i]); | |
NormalizeSize(); | |
return CModalDialog::OnInit(); | |
} | |
bool CComboDialog::OnSize(WPARAM /* wParam */, int xSize, int ySize) | |
{ | |
int mx, my; | |
GetMargins(8, mx, my); | |
int bx1, bx2, by; | |
GetItemSizes(IDCANCEL, bx1, by); | |
GetItemSizes(IDOK, bx2, by); | |
int y = ySize - my - by; | |
int x = xSize - mx - bx1; | |
InvalidateRect(NULL); | |
MoveItem(IDCANCEL, x, y, bx1, by); | |
MoveItem(IDOK, x - mx - bx2, y, bx2, by); | |
ChangeSubWindowSizeX(_comboBox, xSize - mx * 2); | |
return false; | |
} | |
void CComboDialog::OnOK() | |
{ | |
_comboBox.GetText(Value); | |
CModalDialog::OnOK(); | |
} |