67 lines
1.3 KiB
C++
67 lines
1.3 KiB
C++
// 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)
|
|
{
|
|
#ifdef _WIN32
|
|
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);
|
|
#endif
|
|
return false;
|
|
}
|
|
|
|
void CComboDialog::OnOK()
|
|
{
|
|
_comboBox.GetText(Value);
|
|
CModalDialog::OnOK();
|
|
}
|