1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
// MessagesDialog.cpp
#include "StdAfx.h"
#include "Common/IntToString.h"
#include "Windows/ResourceString.h"
#include "MessagesDialog.h"
#ifdef LANG
#include "LangUtils.h"
#endif
using namespace NWindows;
#ifdef LANG
static CIDLangPair kIDLangPairs[] =
{
{ IDOK, 0x02000713 }
};
#endif
void CMessagesDialog::AddMessageDirect(LPCWSTR message)
{
int itemIndex = _messageList.GetItemCount();
wchar_t sz[32];
ConvertInt64ToString(itemIndex, sz);
_messageList.InsertItem(itemIndex, sz);
_messageList.SetSubItem(itemIndex, 1, message);
}
void CMessagesDialog::AddMessage(LPCWSTR message)
{
UString s = message;
while (!s.IsEmpty())
{
int pos = s.Find(L'\n');
if (pos < 0)
break;
AddMessageDirect(s.Left(pos));
s.Delete(0, pos + 1);
}
AddMessageDirect(s);
}
bool CMessagesDialog::OnInit()
{
#ifdef LANG
LangSetWindowText(HWND(*this), 0x02000A00);
LangSetDlgItemsText(HWND(*this), kIDLangPairs, sizeof(kIDLangPairs) / sizeof(kIDLangPairs[0]));
#endif
_messageList.Attach(GetItem(IDC_MESSAGE_LIST));
#ifndef UNDER_CE
_messageList.SetUnicodeFormat(true);
#endif
_messageList.InsertColumn(0, L"", 30);
const UString s =
#ifdef LANG
LangString(IDS_MESSAGES_DIALOG_MESSAGE_COLUMN, 0x02000A80);
#else
MyLoadStringW(IDS_MESSAGES_DIALOG_MESSAGE_COLUMN);
#endif
_messageList.InsertColumn(1, s, 600);
for (int i = 0; i < Messages->Size(); i++)
AddMessage((*Messages)[i]);
_messageList.SetColumnWidthAuto(0);
_messageList.SetColumnWidthAuto(1);
NormalizeSize();
return CModalDialog::OnInit();
}
|