Esempio n. 1
0
void CAsciiwDlg::printAscii(CDC &dc1, int radix) {

  CStatic *st = (CStatic*)GetDlgItem(IDC_STATIC);

  int charactersPerLine = CHARSPERLINE(radix);
  TCHAR *form =          (radix == 16) ? _T("%02X") : _T("%3d");

  WINDOWPLACEMENT wp;
  st->GetWindowPlacement(&wp);
  wp.rcNormalPosition.left   = BOXPOSX;
  wp.rcNormalPosition.top    = BOXPOSY;
  wp.rcNormalPosition.right  = BOXPOSX + XPOS(charactersPerLine+1) + 20;
  wp.rcNormalPosition.bottom = BOXPOSY + YPOS(256/(charactersPerLine)+3) + 4;
  st->SetWindowPlacement(&wp);

  int lineCount = 0;
  CClientDC dc(st);
  dc.SelectObject(m_currentFont);
  dc.SetBkColor(RGB(236,233,216));

  printHeader(dc,lineCount++,radix);

  for(int ch = 0; ch < 256;) {
    dc.SelectObject(&m_defaultFont);
    dc.TextOut(POS0(lineCount,-1), format(form, ch).cstr());
    dc.TextOut(POS(lineCount,charactersPerLine), format(form, ch+charactersPerLine-1).cstr());

    dc.SelectObject(m_currentFont);
    for(int j = 0; j < charactersPerLine; j++,ch++) {
      dc.TextOut(POS(lineCount,j),formatCh3(ch).cstr());
    }

    lineCount++;
  }
  printHeader(dc,lineCount++,radix);
}