Kurz5 - Kapitola10

17. června 2007 v 11:05 | http://www.sweb.cz/kurz_evt/ |  Programování pro WinCE

7.10 Závěrečná funkce

V minulém díle jsme trochu ošidili dekódování zobrazeného textu (pouze Base64 a Quoted-printable kódování a jejich úprava ze znakových stránek pro ISO8859-2 a Windows 1250). Správně by bylo vhodné zahrnout i další možnosti kódování a znakové stránky rozšířit alespoň o UTF-8 (a především je rozlišovat podle skutečně zadané stránky a ne podle toho, "že jsem něco dekódoval"...Fuj!)
Přesto by měl program již obsah vaší schránky zobrazit, zatím jsme však neodstranili ani jednu zprávu. To lze snadno napravit. Změňte členskou funkci OnDelete takto:
  
void CMainFrame::OnDelete()
{
CClrMailView* pView;
pView = (CClrMailView*)GetActiveView();

int kolik,i;
LVITEM item;
item.mask = LVIF_IMAGE;
item.iSubItem = 0;

// Ujistim se, ze opravdu chci oznacene zpravy rusit
if(MessageBox(_T("Are you sure to delete selected items?"),NULL,MB_YESNO) != IDYES) return;

kolik=pView->GetListCtrl().GetItemCount();
// Prochazim polozky a pokud je oznacena, posilam prikaz Delete
for(i=kolik;i>=0;i--) {
item.iItem = i;
pView->GetListCtrl().GetItem(&item);
// Oznacena polozka nema cislo obrazku == 0
if(item.iImage) {
// !!! Pozor zpravy rusim od indexu 1! Nezacinaji 0!
if(m_bConnected) m_Connection.Delete(i+1);
// Ale polozky v ListView zacinaji 0!
pView->GetListCtrl().DeleteItem(i);
}
}
// Oznacene zpravy jsou zruseny - neni zadna oznacena
m_bSelected=FALSE;
}
A aby správně pracovala položka pro rušení zpráv, opravte ještě členskou funkci ...
void CMainFrame::OnUpdateDelete(CCmdUI* pCmdUI) 
{
// Rusit zpravy muzu, kdyz jsou nejake vybrane a jsem pripojeny
pCmdUI->Enable(m_bSelected && m_bConnected);
}
... a program by již měl být hotov. Ale vy můžete dál vylepšovat a upravovat.

Co bychom si měli z této lekce zapamatovat?

  • Pokud si vše promyslíme a připravíme, závěrečný tah je již pohoda.
 

Buď první, kdo ohodnotí tento článek.

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.