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); }